Enforce filter order dependencies

Today, filters can be loaded in any order and might depend on the request state and/or dynamic metadata produced by filters that are not included in a filter chain prior to the filter. We could improve this by having Envoy filter factories explicitly provide a vector of filter names that a filter depends on. This could be enforced/validated in two ways:

Envoy would refuse to load a filter chain that doesn't have all dependencies satisfied.
Envoy could restrict visibility of metadata/per-request state to just those explicitly declared filter dependencies.

I'd like to get a basic design for this feature roughed out before I dive into #3559, since I think the two issues are pretty closely related, and I don't want to do anything in #3559 that breaks what we eventually do here.  Spitballing ideas here to provoke argument, and (hopefully, eventually) consensus:

I'm adding dependency back-propagation as a requirement/nice-to-have from #3559 (i.e. filters should be able to tell when another filter depends on them, and what data the dependency is actually on).

This is a run-time design; if a compile time design (as per the above comment) is desired, please push back.

Filters which need access to other filter's data will have a configuration line added to them of the form "dependencies ., ...." to list all data they are expecting to access.

Configs which include dependencies on filters not earlier in the chain (i.e. not in a position to satisfy the dependency) will fail checking.  There will be a run time failure if information a filter is depended on is not created by the specified filter (?).

dynamicMetadata() accessors will be moved from RequestInfo to FactoryContext.  The type will be changed from an API derived type over to a general map.  FactoryContext will implement that map s.t. only the data that a filter has declared interested in is visible to it.  (This implies that each filter will have its own FactoryContext.)

FactoryContext will in addition export per-filter data about all the information that filter is expected to produce based on the configured filter chain.

Thoughts?  Rotten fruit?

I like the core idea of having filters make clear what their dependencies are. I think we can do this by having filters provide a list of filter names, that they will be expecting to rely upon for dynamicMetadata(). The dynamic metadata should already be organized as a map from "filter name -> metadata". This will be a first class method on the filter factory, much like name() is today. The one trick is that the organization of metadata today is by destination filter, rather than originating filter, we'd need to figure something out here.
I'm not sure if we need to modify where dynamicMetadata() lives if we do enforcement based on this.

So I think we need it to be filter names and value names, because in the case of user-defined header configuration (which I consider a sub-case of this), we want to tell the producing filter exactly what information is needed.  This may have complex type requirements (i.e. we can't just return a proto struct).  Let me know if you want me to let go of this requirement, but it seems an important one for performance, which seems a goal of the Envoy proxy.
I'm confused by your implementation comments.  dynamicMetadata() is currently hosted on the RequestInfo, which means access to it has no context as to which filter is doing the access.  Moving it to the filter factory would indeed give us that context, but that means we're modifying where it lives?
It's also of type envoy::api::v2::core::Metadata, which is a map<string, google.protobuf.Struct> and hence provides no enforcement mechanism.  I think we need to change this type unless we're willing to simply trust filter code, which strikes me as unwise.  We can totally export a type that provides a map interface (maybe two levels, maybe to a struct depending on the discussion in the first paragraph), but it can't be exposed as actually being a map.
My guess is that you're proposing exposing a map interface (not an envoy::api::v2::core::Metadata) from the filter factory, which I think is a fine idea--please confirm if that's true.  If so, the only top level issue to resolve is if dependencies are to filters, or to specific values exported by filters.

@curiouserrandy I commented in #3559, but since we are discussing design here, I'm still a little hazy on why all of this complexity is needed. I do really like the idea of a filter being able to describe its order dependencies as we have lots of confusion about that, but do we need complicated data dependencies also? What do we gain from that versus a more general mechanism such as request local storage (RLS) as tracked here: https://github.com/envoyproxy/envoy/issues/151

@curiouserrandy the idea with using envoy::api::v2::core::Metadata would be to apply some form of filtering before being presented to the user, presuming we can do this efficiently. I agree we want to structurally enforce visibility rules here.
Regarding having the value labels being declared dependencies, I agree, we probably will want this for performance. I guess one of the tradeoffs here is whether it's actually possible to do it "statically", i.e. express this in the configuration, or whether the data dependencies might only be known at runtime.
@mattklein123 this is the discussion we had at our sync up last week, I thought we had drifted towards a solution such as the one @curiouserrandy is proposing.

@htuch: Let's spend 5m chatting offline about the use of ...::Metadata; I don't have a sense as to the different possible implementations you're considering.  Naively, I think using that type requires a filtered copy for each filter.
@mattklein123 : Ooops, I think #151 is what I was trying to get at in #3559 without realizing it exists.  Do you see a difference in intent between those two issues, or should I merge #3559 into #151, copying the meat of the discussion?

[Deleted last comment; please ignore in email stream.]
@htuch: Let's spend 5m chatting offline about the use of ...::Metadata; I don't have a sense as to the different possible implementations you're considering. Naively, I think using that type requires a filtered copy for each filter.
@mattklein123 : Oh, thanks for the pointer to #151; that's very relevant to this discussion.  Could you give me a sense as to how the intent of that issue is different than the dynamicMetadata() access being discussed in this issue?

@mattklein123 this is the discussion we had at our sync up last week, I thought we had drifted towards a solution such as the one @curiouserrandy is proposing.

Sorry I'm probably just confused and don't fully understand what is being proposed. Per the other issue I'm just trying to make sure we don't wind up with complexity we don't need right away. @curiouserrandy maybe after you sync up with @htuch you can offer a more concrete proposal?

@mattklein123 : Oh, thanks for the pointer to #151; that's very relevant to this discussion. Could you give me a sense as to how the intent of that issue is different than the dynamicMetadata() access being discussed in this issue?

I suspect it's very similar, but I'm not completely sure until the metadata proposal is more fleshed out because TBH I don't fully understand what is being proposed. I think we can resolve that issue with whatever we come up with. The idea is just to provide some request level storage that filters can use to pass data around that doesn't involve jamming it into headers which is what is done today.

Folks: I've written up a proposed design for this feature and https://github.com/envoyproxy/envoy/issues/3559 in https://docs.google.com/document/d/1GNawM59Pp09WZ34zqJYiO_qmERjuGbOUeAqF1GG6v9Q/edit#.  Comments welcome.

Closing in favor of https://github.com/envoyproxy/envoy/issues/14470


feature: support for statusline plugins

Did you check the docs?

[X] I have read all the vscode-neovim docs
[X] I understand the fundamental limitations of the plugin and believe this request to be reasonable

Is your feature request related to a problem? Please describe.
Currently, there does not seem to be support for statusline plugins such as lualine.
It would be awesome to either have these available, or to have greater integration with the existing VSCode status bar. For example, the plugin mentioned in this issue https://github.com/vscode-neovim/vscode-neovim/issues/1224 appears to no longer be supported. This appears to be something that is offered in VsCodeVim.
Describe the solution you'd like
Support for statusline plugins, or greater integration with status bar.
Describe alternatives you've considered
Use existing status bar.
Additional context
No response

This appears to be something that is offered in VsCodeVim.

Huh? VsCodeVim does not support any vim/nvim plugins.
You are expecting too much. If you're going to use vscode, use vscode. It makes no sense to expect Nvim UI plugins to map to the vscode UI.

Use https://github.com/vscode-neovim/vscode-neovim#vscodeget_status_itemid

@xiyaowong should we mention how to use nvim_eval_statusline with that feature? Though I assume the request here was to automatically show the statusline rendered from Nvim UI events.


Spelling mistake in Analyzing Trends

depdendencies -> dependencies

@andresnava : Thanks for your contribution to the Azure documentation! The author, @numberbycolors, has been notified to review your proposed change.

#sign-off


Compressing audio files is very slow

Hey guys,
I am trying to “compress” audio files (wav) by lowering their sample rate (from 8k to 3k).
But while I do that using ‘react’ and ‘@ffmpeg/ffmpeg’, the time that it takes for ffmpeg to do so is very long.
The commands i was running:
ffmpeg.FS(“writeFile”, “test.wav”, await fetchFile(“http://localhost:3003/sample.wav”));
await ffmpeg.run(“-i”, “test.wav”, “-ar”, “3000”, “output.wav” )
I would love to get some help about this issue, i saw there is an option for some type of threaded running of ffmpeg, maybe some of you know more about that?

I'm having the same issue.  I wonder why it takes too long.  since it's WASM,  I expected it to be shorter...

Hi, did you find any solution to improve compression performances?


Failed to load library: SensApi.dll

Why I get this? Can't even play roblox because this.

Hyperion is being tripped. Does this happen without Bloxstrap?

To be fair, it's known that this is because of Hyperion, likely don't need to await an answer.


Extension is non-functional on Chromium browsers, even when following the instructions in the warning about Chromium browsers

I mainly use Opera GX, a Chromium browser. However, I was disappointed to find out that none of the features of this extension work even slightly.  I did notice the warning the extension gives relating to Chromium browsers:
"Chromium users: Due to a browser bug, this extension may stop working after an update. If this happens, try restarting your browser, turning the extension off and on via your browser's extension settings (chrome://extensions/), and/or reinstalling the extension."
Except that doesn't work for me.  I've tried that again and again and again and again, and it just won't work.  Filtering doesn't work.  Redirects don't work.  Nothing works.  Tried disabling all other browser extensions, clearing cache, clearing cookies, clearing history.  Nothing.  I set up a VM that had never had any operating system or browsers on it, and I repeated the same steps there, doesn't work.  This extension is 100% non-functional for me on all Chromium browsers (Opera GX, Edge, Chrome tested) on all computers in my house.  Firefox always works instantly and perfectly, but I already knew it did.

Ignore please (and GitHub please let users delete their own issues), I didn't know there was another setting, the "Allow access to search page results" one.


Update makedoc.sh for typings installation

Description

makedoc.sh will check typings installed or not. If not, it will install typings.
Motivation and Context

Fixes #2197
How Has This Been Tested?

Tested script on environment with and without, typedoc and typings.
Checklist:

[x] I have added a Signed-off-by.
[x] I have either added documentation to cover my changes or this change requires no new documentation.
[x] I have either added unit tests to cover my changes or this change requires no new tests.
[x] I have run golint and have fixed valid warnings in code I have added or modified. This tool generates false positives so you may choose to ignore some warnings. The goal is clean, consistent, and readable code.

Signed-off-by: Ankit Kamra<EMAIL_ADDRESS>

@kamraanki Thanks for submitting this PR. This LGTM, but we have transitioned to Gerrit. Please migrate your PR using  instructions on how to do that posted here, and updated the documentation (staged) to provide Gerrit usage guidance here.
Please close this once you have transferred this PR to Gerrit.

Hi @kamraanki, I see that this PR has not been merged yet. Please transfer your PR to Gerrit so it can be merged. Thanks!

@kamraanki we will be transferring the fabric and fabric-api repository and all the corresponding issues and pull requests to the hyperledger-archives org on GH and replacing this repository with a read-only mirror of our Gerrit source. As a result, any automatic GH redirects will be broken. If you haven't already migrated your PR to Gerrit, and intend to do so, you will need to change your git remote to reference the transferred repository (e.g. git@github.com:hyperledger-archives/fabric) on your local clone.

@angrbrd @christo4ferris  I am sorry for late reply, i will transfer this PR to Gerrit. Thanks!


How to Click PDFButton ?

How do we Click a pdf button ? i have the following code which gets a button however i am unable to click that button after
getting it. Is there a button.click method ? code below
const button = form.getButton('Secure');
button.click() // Is there such a method

@Hopding any thoughts on how to do this ?

Hello @Graig123git!
I’m afraid pdf-lib cannot “click” buttons. You can only click buttons inside of a PDF reader. Executing the click action handler of a button requires the runtime of a PDF reader, which pdf-lib does not (and will never) provide. I’m not aware of any other PDF libraries that provide this functionality either.

Is there any alternative to clicking the Button ?
On Tue, Oct 13, 2020 at 7:12 AM Andrew Dillon<EMAIL_ADDRESS>wrote:

Closed #628 https://github.com/Hopding/pdf-lib/issues/628.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Hopding/pdf-lib/issues/628#event-3870708905, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AK6ZWJCN2YEWUSGVI5GWTM3SKQYZ3ANCNFSM4SLWCMMQ
.

Not that I know of. But I’m not entirely sure what you mean.

Is is possible to click button and open modal after loading pdf

@Hopding sorry for the late reply,  I have a PDFButton type field, what i mean is can i some how set this PDFButton to TRUE which would indicate that this PDFButton was click programmatically or set to TRUE.

@Hopding  here is a reference to the PDFButton that am trying to push/click

@Hopding are you able to address my previous comments above ?

@Graig123git I’m afraid I don’t understand what it is that you’re trying to do.


Update free-courses-en.md

What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

this is a time-limited coures. My don't list those.
Please see docs/CONTRIBUTING.md guidelines!

I added a book instead, kindly accept it under hacktoberfest 2022


Disable no wildcard rule

Bandaid for https://github.com/pinterest/ktlint/issues/48

Please make a release with this change as it is wanted by a lot of developers :) @shashachu

@mortrnholmgaard I will try my best to put out a release this weekend, but it may have to wait until Tuesday (Monday is a holiday in the US).


[stress testing] Design more fine grained chaos resource targeting

Currently there are two ways to define chaos resources, either via hardcoded/static targets, or by defining a single resource through our addons templates, which will be looped over via .Values.Scenarios. In cases where multiple scenario tests are being run, but only a subset of those tests should have chaos applied to them, we need a better way to define and link these resources together.

Already have other issues tracking this (example #3281)


fix: custom-error-response-type-from-map-to-list

Description
custom_error_response started breaking when upgrading to 3.1.0 and looks like it's because the variable expects an object but is treated as a list
variables.tf
variable "custom_error_response" {
  description = "One or more custom error response elements"
  type        = any
  default     = {}
}

main.tf
  dynamic "custom_error_response" {
    for_each = length(flatten([var.custom_error_response])[0]) > 0 ? flatten([var.custom_error_response]) : []

    content {
      error_code = custom_error_response.value["error_code"]

      response_code         = lookup(custom_error_response.value, "response_code", null)
      response_page_path    = lookup(custom_error_response.value, "response_page_path", null)
      error_caching_min_ttl = lookup(custom_error_response.value, "error_caching_min_ttl", null)
    }
  }

The example also demonstrates usage with list.
  custom_error_response = [{
    error_code         = 404
    response_page_path = "/errors/404.html"
    }, {
    error_code         = 403
    response_page_path = "/errors/403.html"
  }]

Motivation and Context

Breaking Changes

How Has This Been Tested?

[ ] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[ ] I have tested and validated these changes using one or more of the provided examples/* projects

[ ] I have executed pre-commit run -a on my pull request

nevermind, I got confused and was using it wrong, closing.


[v9] Update pinned minor version of GTMSessionFetcher dependencies

GTMSessionFetcher was the only dependency that had a pinned minor version that needed updating.
All were updated:
➜  firebase-ios-sdk git:(nc/dependencies-v9)
‣ git --no-pager grep "dependency 'GTMSessionFetcher"                                                                                (233ms)
FirebaseAuth.podspec:  s.dependency 'GTMSessionFetcher/Core', '~> 1.7'
FirebaseFunctions.podspec:  s.dependency 'GTMSessionFetcher/Core', '~> 1.7'
FirebaseStorageInternal.podspec:  s.dependency 'GTMSessionFetcher/Core', '~> 1.7'

Update. All three affected specs in this PR have been staged to specs staging:

[Fix] FirebaseFunctions (9.0.0)
[Fix] FirebaseAuth (9.0.0)
[Fix] FirebaseStorageInternal (9.0.0)


Refactor caching to cache flowKit instances

Instead of caching emulators, we need to cache flowKit instances

Part of FlowKit Base Refactor


feat: Make lnlambda.lnmetrics.info default lamdaServer url

While setting up connection type of ClientMode.lnlambda, the user has to provide a URL for a lambda server. Those who aren't aware of any, they can use lnlambda.lnmetrics.info, but this thing isn't documented anywhere. Hence this PR makes https://lnlambda.lnmetrics.info the default option for lambda server which the user can change if they want to.

This is not the solution that I had in mind, but it is just a default value.
The URL should be a choice of the user from a list of options

Yes that can be done. We can have a dropdown from which the user can select one of the many lambda URLs. Among the options in the dropdown, one option can be enter manually. If user selects the enter manually option, then we will show a text field for the user to enter the url. Else we will go with the user selected URL from the dropdown.

Sounds good

Yes that can be done. We can have a dropdown from which the user can select one of the many lambda URLs. Among the options in the dropdown, one option can be enter manually. If user selects the enter manually option, then we will show a text field for the user to enter the url. Else we will go with the user selected URL from the dropdown.

Here's a demo video of how this will work
https://github.com/dart-lightning/lndart.clnapp/assets/59914433/f6f3ffef-5384-4884-ab90-1305d00ff652

@mdmohsin7 instead to set the first value to an empty one, can you set it to the lnmetrics URL?
Thanks

@mdmohsin7 instead to set the first value to an empty one, can you set it to the lnmetrics URL?
Thanks

This is done.
Attaching a demo video of it.
https://github.com/dart-lightning/lndart.clnapp/assets/59914433/0be4f65d-a2df-4efe-87d5-e43fb186b155

looks like that it needs a rebase


Filepath tracing, custom notes in the chart editor, and note texture crash prevention

Overview
This request changes Note.hx so the engine attempts to reload custom notes in-game and in the chart editor with a valid texture rather than reloading with a blank string, which can be overridden by the noteskin and cause crashes.
It also changes Paths.hx to trace the expected filepath of an asset returning null.
The bugs:

Calling reloadNote('HURT'); results in 'HURT' + noteskin, if argument texture is null. HURTGOLDNOTE_assets doesn't exist for example, causing a crash in-game.

Custom notes don't call reloadNote() to reload the texture in advance, meaning it could be overridden by the noteskin.
It doesn't load the texture in the chart editor, and has the potential to crash in-game.

It is often impossible to determine the suggested path for a missing texture by looking at the terminal logs.

The solutions:

Calling reloadNote('HURT', 'NOTE_assets'); results in 'HURT' + 'NOTE_assets', which conveniently exists.

Setting the custom note prefix to the note's name and then reloadNote() results in 'LUANOTE_assets' if it exists for example, avoiding null object references and loading the texture in the chart editor.

If it doesn't, the texture isn't loaded in the chart editor and the terminal suggests to change the texture to a more conventional name.

Accepting this PR means:

Any custom note with those arguments will appear in the chart editor with it's texture, rather than just looking like a generic note.

Noteskins will not effect any custom notetypes like Hurt Notes in-game.

The game doesn't crash every funkin' time you want to use a noteskin on an existing chart.

If other bugs cause the game to crash, the terminal will display more detailed stacks that can help solve problems.

PR is more useful now! All custom notes load in the chart editor, XML crash prevention stops notes from loading animations that don't exist, Paths does some path tracing for null assets, and no breaking changes either!


feat: allow miners to set max task results

:tada: This PR is included in version 1.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


🐛 Bug Report: Gitlab self hosted. Repo created but empty

📜 Description
error: Failed to push to repo {dir=/tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content, remote=origin}
2023-11-23T06:11:37.000Z Error: socket hang up

👍 Expected behavior
It should create a repo and populate with content.
👎 Actual Behavior with Screenshots
Creates an empty repo.
Why is it trying to contact http not https?
url=http://gitlab.mysite.com/root/simplenodeservice-user104.git

👟 Reproduction steps
See below.
📃 Provide the context for the Bug.
checks out a template repo from Gitlab with the important stuff in the content folder. Which is successful.

2023-11-23T06:10:35.000Z Beginning step Fetch Base
2023-11-23T06:10:35.000Z info: Fetching template content from remote URL
2023-11-23T06:10:35.000Z info: Listing files and directories in template
2023-11-23T06:10:35.000Z info: Processing 4 template files/directories with input values {"includeSecurityScans":false,"name":"user104"}
2023-11-23T06:10:35.000Z info: Writing file .gitkeep to template output path with mode 33188.
2023-11-23T06:10:35.000Z info: Writing file catalog-info.yaml to template output path with mode 33188.
2023-11-23T06:10:35.000Z info: Writing file securityScanJob.yaml to template output path with mode 33188.
2023-11-23T06:10:35.000Z info: Writing file test.txt to template output path with mode 33188.
2023-11-23T06:10:35.000Z info: Template result written to /tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content
2023-11-23T06:10:35.000Z Finished step Fetch Base

Listing the files shows it has been successful:
2023-11-23T06:10:35.000Z Beginning step List workspace
2023-11-23T06:10:35.000Z info: {
      "listWorkspace": true
    }
2023-11-23T06:10:35.000Z Workspace:
  - content/.gitkeep
  - content/catalog-info.yaml
  - content/securityScanJob.yaml
  - content/test.txt
2023-11-23T06:10:35.000Z Finished step List workspace

The new repo is created but empty:

2023-11-23T06:10:35.000Z Beginning step Publish to Gitlab
2023-11-23T06:10:36.000Z info: Init git repository {dir=/tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content}
2023-11-23T06:10:36.000Z info: Adding file {dir=/tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content,filepath=.}
2023-11-23T06:10:36.000Z info: Committing file to repo {dir=/tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content,message=Initial commit from 'user104' for template 'simplenodeservice'}
2023-11-23T06:10:36.000Z info: Creating new remote {dir=/tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content,remote=origin,url=http://gitlab.mysite.com/root/simplenodeservice-user104.git, Opens in a new window}
2023-11-23T06:10:36.000Z info: Pushing directory to remote {dir=/tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content,remote=origin}
2023-11-23T06:11:37.000Z error: Failed to push to repo {dir=/tmp/9ccfd70b-bf60-4909-bf9e-1c1f023c3ae0/content, remote=origin}
2023-11-23T06:11:37.000Z Error: socket hang up
    at connResetException (node:internal/errors:720:14)
    at TLSSocket.socketOnEnd (node:_http_client:525:23)
    at TLSSocket.emit (node:events:529:35)
    at endReadableNT (node:internal/streams/readable:1368:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

Config
integrations:
      gitlab:
        - host: gitlab.mysite.com
          baseUrl: https://gitlab.mysite.com
          apiBaseUrl: https://gitlab.mysite.com/api/v4
          token: ${GITLAB_TOKEN}

Template
  steps:
    - id: fetch-base
      name: Fetch Base
      action: fetch:template
      input:
        url: ./content
        targetPath: ./content
        values:
          name: ${{ parameters.name }}
          includeSecurityScans: ${{ parameters.includeSecurityScans }}
    - id: debug
      name: List workspace
      action: debug:log
      input:
        listWorkspace: true
    - id: publish
      name: Publish to Gitlab
      action: publish:gitlab
      input:
        allowedHosts: ['mysite.com']
        repoUrl: 'gitlab.mysite.com?repo=simplenodeservice-${{ parameters.name }}&owner=root'
        sourcePath: './content'
        description: ${{ parameters.description }}
        visibility: public
        defaultBranch: main
        gitAuthorName: ${{ parameters.name }}
        gitAuthorEmail: '${{ parameters.name<EMAIL_ADDRESS>        gitCommitMessage: Initial commit from '${{ parameters.name }}' for template 'simplenodeservice'
        topics: ["simplenodeservice", "from-template", "backstage"]
    - id: catalog
      name: Register to Catalog
      action: catalog:register
      input:
        repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }}
        optional: true
  output:
    links:
      - title: View on Gitlab
        url: ${{ steps.publish.output.remoteUrl }}
      - title: View in Catalog
        icon: catalog
        entityRef: ${{ steps.catalog.output.entityRef }}

I found https://github.com/backstage/backstage/issues/18807 but it doesn't have a concrete solution
🖥 Your Environment

👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

Hmm this looks strange that it's doing things over http instead of https, can you have a dig around and try and find out what's going on here? Maybe adding some debugging to node_modules or something to help.

I'm not a node developer so I'm limited in my ability. My colleague has prepared this which I'm consuming. Here's the repo in case you can spot something obvious: https://github.com/agardnerit/test123.
This is from the Gitlab logs.
{"component": "gitlab","subcomponent":"puma.stderr","time":"2023-11-24T00:20:08Z","message":"2023-11-24 00:20:08 +0000 HTTP parse error, malformed request: #<Puma::HttpParserError: Invalid HTTP format, parsing fails. Are you trying to open an SSL connection to a non-SSL Puma?>"}

Not a backstage error. For others, the problem was in the Gitlab helm chart: global.hosts.https needs to be true.
FWIW I also set proxySecure to true in backstage but not sure if that made any difference.


Remove fixed 800x500 main window size; clean up use of 'root' vs. 'self.root', and minimize window visibility before final placement

This change makes the window size as close as possible to the current size (802x503 vs. 800x500) by explicitly specifying the sizes of various fields rather than letting the "sticky=NSEW" determine how much to "stretch" every widget to make it fit.
This change also uses root.withdraw() / root.deiconify() to hide the window while it's being contstructed and before its final placement.
Finally this change cleans up the mixed use of "root" (a parameter) and "self.root" (where it's saved) during use.  Either should do; this change alters it to consistently use "root." for brevity.  In addition some trailing white space was removed from a few code lines.

Patrick, the size is larger now, but the window appears briefly in the upper left before jumping to the center of the screen. It doesn't seem too important for now, but I think this is something you were trying to fix. This is with Windows 10.
~Les

Patrick, the size is larger now, but the window appears briefly in the upper left before jumping to the center of the screen. It doesn't seem too important for now, but I think this is something you were trying to fix. This is with Windows 10.
~Les

This seems straightforward and I wanted to merge it so I could have a clean shot at merging my config changes.

This seems straightforward and I wanted to merge it so I could have a clean shot at merging my config changes.


UPDATE: use msgpack + msgpack numpy by default

Reviewers:

[ ] @mention

What's the purpose of the PR?

Description of changes

Notes to reviewers

Keep in mind while reviewing code:

Is relevant code tested?
Are added functions/methods documented?
Separation of concerns (SOC)
Don't repeat yourself (DRY)
Limit the number of positional arguments
Is function/method length reasonable?
Can code be broken down into smaller components?
Where do added functions/methods belong?
Are variable names descriptive?
Are errors handled appropriately?
Can logic be simplified?
Does the code make sense in context? (expand the diff)

Also removes intersections API


Fixes #4635

@exchange12rocks : Thanks for your contribution! The author(s) have been notified to review your proposed change.


evaluate

Fix ModuleNotFoundError: No module named 'evaluate' after !pip install git+https://github.com/frankaging/pyreft.gitby adding this step : !pip install evaluate in the readme. It's raised a error that can cause a disgreements to the user.

ty! requirements.txt is updated! i also updated README to show verified conda env setup. it should work now with a from-scratch conda env with python3.10.


Visualization as a list of refactoring changes in code diffs

Gutter helps to mark refactoring changes in code diffs. Changes must be presented as a list if there are several of them on one line.

Visualization can be represented like this:

At the moment I visualized like this:

Diffs shows when pressed. Perhaps a more detailed description can be shown on hover, if it is possible to define

@anchouls, cool! I have a couple of suggestions✌

Is it possible to make the size of the panel dependent on the text? I mean now the panel is quite wide in all cases, but it could be smaller/bigger depending on the count of characters in the refactoring description.

Also, the arrow on the right side of the panel makes me think that something will appear on the right side of it, but it opens an editor with diff. Maybe we can use another icon instead of arrow?

I think this visualization is generally good:

@anchouls looks good, thank you!
Maybe we can use icons for method, class, variable like we do it here?

Do you mean like in the first or second image?

@anchouls , second image


Setup a proof of concept (Victron MultiPlus + Seplos BMS)

The idea:

The state of the Seplos BMS is retrieved periodically using RS485.
Selected/Required measurements are passed using CAN Bus to a Victron MP

@Meli73 Thanks in advance for your support!

[ ] Create a capture of the CAN bus traffic
[ ] Get an idea about the used protocol / registers and measurements
[ ] Make sure this implementation is able to pass the same informations via CAN bus
[ ] Add an example of the schematics to the docs (ESP32 <-> CAN)

perheps also this part is OK:
https://www.google.com/search?q=Sn65hvd230&rlz=1C1GGRV_enDE770DE770&sourceid=chrome&ie=UTF-8
So to the Schematics:  We need two GPIO for RS485 and the same for CAN .
What 4 GPIO do you prefer ?   so I could make a little drawing.

Let's pick GPIO16, GPIO17, GPIO18, GPIO19. I guess the SN65HVD230 is a good choice too!

Are you talking about a ESP8266 or ESP32? We should stick to a ESP32 for now because the ESP8266 doesn't provide native CAN support. If you want to use a ESP8266 the MCP2515 must be connected via SPI.

Oh, yes ..   so lets stay at the ESP32

I hope this is now correct

Good job! Could you provide this sketch in ASCII? :-)

seplos CAN.txt
ok .. this way ;-)

Thanks a lot! Let's focus on the traffic capture as next step.

here is some CANDump  from my Venus OS Victron GX device:
root@raspberrypi4:~# candump can8,0x373:7FF
can8  373   [8]  BB 0C C5 0C 26 01 28 01
can8  373   [8]  BA 0C C5 0C 26 01 28 01
can8  373   [8]  BA 0C C4 0C 26 01 28 01
can8  373   [8]  B9 0C C4 0C 26 01 28 01
can8  373   [8]  B9 0C C4 0C 26 01 28 01
can8  373   [8]  BA 0C C4 0C 26 01 28 01
can8  373   [8]  BB 0C C5 0C 26 01 28 01
can8  373   [8]  BC 0C C6 0C 26 01 28 01
can8  373   [8]  BD 0C C6 0C 26 01 28 01
can8  373   [8]  BD 0C C6 0C 26 01 28 01
can8  373   [8]  BC 0C C6 0C 26 01 28 01
can8  373   [8]  BB 0C C6 0C 26 01 28 01
can8  373   [8]  BB 0C C5 0C 26 01 28 01
^Croot@raspberrypi4:~# candump can8
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 D3 FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 CC FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 D9 FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  62 14 FE FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  62 14 FE FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 DA FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 CF FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 CF FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 EB FE EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  356   [8]  61 14 05 FF EB 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00

How many devices are attached to the CAN bus?

here again with Timestamp and RS485 traffic from same time Frame:
root@raspberrypi4:~# date;candump can8;date
Wed Mar 22 16:00:11 UTC 2023
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  356   [8]  51 14 BA FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AD 0C B9 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  356   [8]  51 14 D0 FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AD 0C B9 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  356   [8]  50 14 BC FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AD 0C B8 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  356   [8]  4F 14 9F FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AC 0C B8 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  356   [8]  4E 14 93 FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AB 0C B8 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  356   [8]  4D 14 97 FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AA 0C B7 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  356   [8]  4D 14 99 FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AA 0C B7 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  356   [8]  4E 14 A6 FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AB 0C B7 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  356   [8]  4E 14 C1 FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AB 0C B7 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  356   [8]  4F 14 D2 FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AC 0C B7 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  305   [8]  00 00 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  356   [8]  50 14 BB FE EA 00 1A 00
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  372   [8]  01 00 00 00 00 00 00 00
can8  373   [8]  AC 0C B8 0C 27 01 28 01
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  307   [8]  12 34 56 78 56 49 43 00
^CWed Mar 22 16:00:23 UTC 2023
[17:00:05][I][seplos_bms:030]: Telemetry frame (81 bytes) received
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 1': Sending state 3.25400 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 2': Sending state 3.25400 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 3': Sending state 3.25000 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 4': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 5': Sending state 3.24800 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 6': Sending state 3.25400 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 7': Sending state 3.25400 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 8': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 9': Sending state 3.25300 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 10': Sending state 3.25300 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 11': Sending state 3.25200 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 12': Sending state 3.25300 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 13': Sending state 3.25000 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 14': Sending state 3.25400 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 15': Sending state 3.25200 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms cell voltage 16': Sending state 3.25700 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms min cell voltage': Sending state 3.24800 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms max cell voltage': Sending state 3.25700 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms max voltage cell': Sending state 16.00000  with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms min voltage cell': Sending state 5.00000  with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms delta cell voltage': Sending state 0.00900 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms average cell voltage': Sending state 3.25238 V with 3 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms temperature 1': Sending state 22.40000 °C with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms temperature 2': Sending state 21.50000 °C with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms temperature 3': Sending state 22.20000 °C with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms temperature 4': Sending state 23.30000 °C with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms environment temperature': Sending state 23.40000 °C with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms mosfet temperature': Sending state 19.70000 °C with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms current': Sending state -34.45000 A with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms total voltage': Sending state 52.04000 V with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms power': Sending state -1792.77795 W with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms charging power': Sending state 0.00000 W with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms discharging power': Sending state 1792.77795 W with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms residual capacity': Sending state 179.44000 Ah with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms battery capacity': Sending state 303.94000 Ah with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms state of charge': Sending state 59.00000 % with 1 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms rated capacity': Sending state 304.00000 Ah with 2 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms charging cycles': Sending state 26.00000  with 0 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms state of health': Sending state 100.00000 % with 1 decimals of accuracy
[17:00:05][D][sensor:126]: 'seplos-bms port voltage': Sending state 52.04000 V with 2 decimals of accuracy
[17:00:15][I][seplos_bms:030]: Telemetry frame (81 bytes) received
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 1': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 2': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 3': Sending state 3.24600 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 4': Sending state 3.24600 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 5': Sending state 3.24400 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 6': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 7': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 8': Sending state 3.24800 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 9': Sending state 3.25000 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 10': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 11': Sending state 3.24800 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 12': Sending state 3.25000 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 13': Sending state 3.24800 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 14': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 15': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms cell voltage 16': Sending state 3.25600 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms min cell voltage': Sending state 3.24400 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms max cell voltage': Sending state 3.25600 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms max voltage cell': Sending state 16.00000  with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms min voltage cell': Sending state 5.00000  with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms delta cell voltage': Sending state 0.01200 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms average cell voltage': Sending state 3.24944 V with 3 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms temperature 1': Sending state 22.40000 °C with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms temperature 2': Sending state 21.50000 °C with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms temperature 3': Sending state 22.20000 °C with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms temperature 4': Sending state 23.30000 °C with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms environment temperature': Sending state 23.40000 °C with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms mosfet temperature': Sending state 19.70000 °C with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms current': Sending state -35.34000 A with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms total voltage': Sending state 51.99000 V with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms power': Sending state -1837.32654 W with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms charging power': Sending state 0.00000 W with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms discharging power': Sending state 1837.32654 W with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms residual capacity': Sending state 179.34000 Ah with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms battery capacity': Sending state 303.94000 Ah with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms state of charge': Sending state 59.00000 % with 1 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms rated capacity': Sending state 304.00000 Ah with 2 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms charging cycles': Sending state 26.00000  with 0 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms state of health': Sending state 100.00000 % with 1 decimals of accuracy
[17:00:15][D][sensor:126]: 'seplos-bms port voltage': Sending state 52.01000 V with 2 decimals of accuracy
[17:00:25][I][seplos_bms:030]: Telemetry frame (81 bytes) received
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 1': Sending state 3.25200 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 2': Sending state 3.25200 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 3': Sending state 3.24700 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 4': Sending state 3.24700 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 5': Sending state 3.24500 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 6': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 7': Sending state 3.25200 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 8': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 9': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 10': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 11': Sending state 3.25000 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 12': Sending state 3.25100 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 13': Sending state 3.24800 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 14': Sending state 3.25200 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 15': Sending state 3.25000 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms cell voltage 16': Sending state 3.25600 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms min cell voltage': Sending state 3.24500 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms max cell voltage': Sending state 3.25600 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms max voltage cell': Sending state 16.00000  with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms min voltage cell': Sending state 5.00000  with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms delta cell voltage': Sending state 0.01100 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms average cell voltage': Sending state 3.25025 V with 3 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms temperature 1': Sending state 22.50000 °C with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms temperature 2': Sending state 21.50000 °C with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms temperature 3': Sending state 22.20000 °C with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms temperature 4': Sending state 23.30000 °C with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms environment temperature': Sending state 23.40000 °C with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms mosfet temperature': Sending state 19.70000 °C with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms current': Sending state -35.74000 A with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms total voltage': Sending state 52.00000 V with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms power': Sending state -1858.47986 W with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms charging power': Sending state 0.00000 W with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms discharging power': Sending state 1858.47986 W with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms residual capacity': Sending state 179.25000 Ah with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms battery capacity': Sending state 303.94000 Ah with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms state of charge': Sending state 58.90000 % with 1 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms rated capacity': Sending state 304.00000 Ah with 2 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms charging cycles': Sending state 26.00000  with 0 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms state of health': Sending state 100.00000 % with 1 decimals of accuracy
[17:00:25][D][sensor:126]: 'seplos-bms port voltage': Sending state 52.03000 V with 2 decimals of accuracy
[17:00:35][I][seplos_bms:030]: Telemetry frame (81 bytes) received
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 1': Sending state 3.25000 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 2': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 3': Sending state 3.24300 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 4': Sending state 3.24400 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 5': Sending state 3.24100 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 6': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 7': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 8': Sending state 3.24600 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 9': Sending state 3.24700 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 10': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 11': Sending state 3.24600 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 12': Sending state 3.24800 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 13': Sending state 3.24500 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 14': Sending state 3.24900 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 15': Sending state 3.24600 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms cell voltage 16': Sending state 3.25400 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms min cell voltage': Sending state 3.24100 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms max cell voltage': Sending state 3.25400 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms max voltage cell': Sending state 16.00000  with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms min voltage cell': Sending state 5.00000  with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms delta cell voltage': Sending state 0.01300 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms average cell voltage': Sending state 3.24719 V with 3 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms temperature 1': Sending state 22.50000 °C with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms temperature 2': Sending state 21.50000 °C with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms temperature 3': Sending state 22.20000 °C with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms temperature 4': Sending state 23.30000 °C with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms environment temperature': Sending state 23.40000 °C with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms mosfet temperature': Sending state 19.70000 °C with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms current': Sending state -40.57000 A with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms total voltage': Sending state 51.96000 V with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms power': Sending state -2108.01709 W with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms charging power': Sending state 0.00000 W with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms discharging power': Sending state 2108.01709 W with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms residual capacity': Sending state 179.14999 Ah with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms battery capacity': Sending state 303.94000 Ah with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms state of charge': Sending state 58.90000 % with 1 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms rated capacity': Sending state 304.00000 Ah with 2 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms charging cycles': Sending state 26.00000  with 0 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms state of health': Sending state 100.00000 % with 1 decimals of accuracy
[17:00:35][D][sensor:126]: 'seplos-bms port voltage': Sending state 51.93000 V with 2 decimals of accuracy

How many devices are attached to the CAN bus?

only the seplos BMS and the Venus OS GX device (running on a RaspberryPi)

Is this your final setup too? We don't talk to the victron inverter directly? There is always the GX in between?

yes.  that is the communication unit of the Victron Multiplus II inverter.  It could be integrated in in inverter . or stand alone.

The CAN traffic in groups:
# 305
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00
can8  305   [8]  00 00 00 00 00 00 00 00

# 307
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00
can8  307   [8]  12 34 56 78 56 49 43 00

# 351
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01
can8  351   [8]  43 02 E8 03 9E 07 D0 01

# 355
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  355   [8]  3B 00 64 00 0C 17 00 00
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  355   [8]  3B 00 64 00 02 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00
can8  355   [8]  3C 00 64 00 84 17 00 00

# 356
can8  356   [8]  51 14 BA FE EA 00 1A 00
can8  356   [8]  51 14 D0 FE EA 00 1A 00
can8  356   [8]  50 14 BC FE EA 00 1A 00
can8  356   [8]  4F 14 9F FE EA 00 1A 00
can8  356   [8]  4E 14 93 FE EA 00 1A 00
can8  356   [8]  4D 14 97 FE EA 00 1A 00
can8  356   [8]  4D 14 99 FE EA 00 1A 00
can8  356   [8]  4E 14 A6 FE EA 00 1A 00
can8  356   [8]  4E 14 C1 FE EA 00 1A 00
can8  356   [8]  4F 14 D2 FE EA 00 1A 00
can8  356   [8]  50 14 BB FE EA 00 1A 00
can8  356   [8]  61 14 D3 FE EB 00 1A 00
can8  356   [8]  61 14 CC FE EB 00 1A 00
can8  356   [8]  61 14 D9 FE EB 00 1A 00
can8  356   [8]  62 14 FE FE EB 00 1A 00
can8  356   [8]  62 14 FE FE EB 00 1A 00
can8  356   [8]  61 14 DA FE EB 00 1A 00
can8  356   [8]  61 14 CF FE EB 00 1A 00
can8  356   [8]  61 14 CF FE EB 00 1A 00
can8  356   [8]  61 14 EB FE EB 00 1A 00
can8  356   [8]  61 14 05 FF EB 00 1A 00

# 35A
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02
can8  35A   [8]  AA AA AA 02 AA AA AA 02

# 35E
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79
can8  35E   [8]  53 48 45 6E 65 72 67 79

# 35F
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00
can8  35F   [8]  00 00 10 04 30 01 00 00

# 370
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52
can8  370   [8]  43 41 4E 2D 53 4D 41 52

# 371
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54
can8  371   [8]  54 42 4D 53 2D 42 41 54

# 372
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00
can8  372   [8]  01 00 00 00 00 00 00 00

# 373
can8  373   [8]  AD 0C B9 0C 27 01 28 01
can8  373   [8]  AD 0C B9 0C 27 01 28 01
can8  373   [8]  AD 0C B8 0C 27 01 28 01
can8  373   [8]  AC 0C B8 0C 27 01 28 01
can8  373   [8]  AB 0C B8 0C 27 01 28 01
can8  373   [8]  AA 0C B7 0C 27 01 28 01
can8  373   [8]  AA 0C B7 0C 27 01 28 01
can8  373   [8]  AB 0C B7 0C 27 01 28 01
can8  373   [8]  AB 0C B7 0C 27 01 28 01
can8  373   [8]  AC 0C B7 0C 27 01 28 01
can8  373   [8]  AC 0C B8 0C 27 01 28 01
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  373   [8]  B8 0C C2 0C 27 01 28 01
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  373   [8]  B9 0C C2 0C 27 01 28 01
can8  373   [8]  B9 0C C2 0C 27 01 28 01

# 374
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23
can8  374   [8]  50 61 63 6B 2D 30 31 23

# 375
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23
can8  375   [8]  50 61 63 6B 2D 30 31 23

# 376
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23
can8  376   [8]  50 61 63 6B 2D 30 31 23

# 377
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23
can8  377   [8]  50 61 63 6B 2D 30 31 23

# 378
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  6A 0F 00 00 6D 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00
can8  378   [8]  69 0F 00 00 6B 0E 00 00

# 379
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00
can8  379   [8]  30 01 00 00 00 00 00 00

The description of the different CAN IDs:
0x305: Battery voltage, Battery current, Battery temperature, SOC
0x307:
0x351: Battery charge voltage, DC charge current limit, DC discharge current limit, discharge voltage
0x355: SOC value, SOH value, HiResSOC
0x356: Battery Voltage, Battery Current, Battery Temperature
0x35A: Alarms, Warnings
0x35E: Manufacturer Name
0x35F: Bat-Type, BMS Version, Bat-Capacity, Manufacturer ID
0x370:
0x371
0x372
0x373
0x374
0x375
0x376
0x377
0x378
0x379

As next step I would like to add your ESP32 as third device to the bus. We could print some received frames to the log to make sure the setup works as expected.

Still Waiting for my hardware - namly the CAN transceiver...   ;-)

back again ..  sorry for the delay-  my littel free time was fully blocked by getting my 2nd Seplos Mason Pack build up and running at all.
So I'm not at this - not so nice- point that I could monitor this 2nd Pack nicely by RS486 up into HA. But I'm nearly blind depending my frist Pack now.
In the meantime, I hade also long and hard thoughts about the approach here with the "rebuild" master by listening and reverse engineering.
But I am now a little afraid to change the complete battery control to such a system - including some of the limitations and emergency shutdowns.
What if we only see the normal case but can't reproduce special cases and disturbances because we have never seen them?
Isn't the bluetooth approach possibly the better one at all? At least it would be much more passive and not so risky.

@Meli73 Could you contact me (syssi#5175) via Discord?

@Meli73 did you end up trying the BT approach? I am looking to do something similar but with 5 packs.

Some well tested CAN ID payloads: esp32-example-can.yaml.txt


IJulia does not see new ZMQ version

Pkg.status()

gives
 - ZMQ                           0.3.0+             master
 - IJulia                        1.1.8              master

i.e. I have the latest version of ZMQ. But when I type using IJulia,
 ERROR: LoadError: InitError: ZMQ version 2.2.0 < 3 is not supported
 in error at ./error.jl:21
 in __init__ at /home/cory/.julia/v0.4/ZMQ/src/ZMQ.jl:563
 in _require_from_serialized at loading.jl:84
 in require at ./loading.jl:225
 in include at ./boot.jl:261
 in include_from_node1 at ./loading.jl:304
 [inlined code] from none:2
 in anonymous at no file:0
 in process_options at ./client.jl:284
 in _start at ./client.jl:411
during initialization of module ZMQ
while loading /home/cory/.julia/v0.4/IJulia/src/IJulia.jl, in expression starting on line 15
ERROR: Failed to precompile IJulia to /home/cory/.julia/lib/v0.4/IJulia.ji
 in error at ./error.jl:21
 in compilecache at loading.jl:383
 in require at ./loading.jl:250

IIRC, this is the libzeromq version, not ZMQ.jl version. ZMQ.jl should pull in a newer version by default. Please report to ZMQ.jl if it is finding or installing a much older version of the library.


Feat evaluators

First attempt on Evaluation with our dataset. Missing:

conversion from class dataset.
having summary with averaged NDCG etc.

@hanxiao can you review the changes wrt the metrics.py file?


Server side error - document is not defined

Does server side rendering works ?
ReferenceError: document is not defined
at ReactTooltip.render (/home/bobi/ws/node_modules/react-tooltip/dist/react-tooltip.js:365:10)
at [object Object].ReactCompositeComponentMixin._renderValidatedComponentWithoutOwnerOrContext (/home/bobi/ws/node_modules/react/lib/ReactCompositeComponent.js:587:34)

Just fix it by moving some code from render into componentDidMount.

I had to use state to  trigger tooltip rendering but it worked. Thank you.

@bobiblazeski, did you mean something like this?
        {this.state.displayTooltips && <ReactTooltip />}

Doesn't seem to work...


Annotation is skipped in specific case

Consider a following sample:
contract Foo {
    /**
        any stuff
        #if_succeeds 1 == 1;
     */
     function approve(address _spender, uint256 _value) public returns (bool) {}
}

This contract does not get instrumented with command while x is preceeding the #if_succeeds annotation. Following sample is working as expected:
contract Foo {
    /**
        #if_succeeds 1 == 1;
     */
     function approve(address _spender, uint256 _value) public returns (bool) {}
}

Produced instrumentation:
/// This file is auto-generated by Scribble and shouldn't be edited directly.
/// Use --disarm prior to make any changes.
pragma solidity 0.8.13;

/// Utility contract holding a stack counter
contract __scribble_ReentrancyUtils {
    event AssertionFailed(string message);

    event AssertionFailedData(int eventId, bytes encodingData);

    bool __scribble_out_of_contract = true;
}

contract Foo is __scribble_ReentrancyUtils {
    function approve(address _spender, uint256 _value) public returns (bool RET_0) {
        RET_0 = _original_Foo_approve(_spender, _value);
        unchecked {
            if (!(1 == 1)) {
                emit AssertionFailed("0: ");
                assert(false);
            }
        }
    }

    function _original_Foo_approve(address _spender, uint256 _value) private returns (bool) {}
}

Please, consider investigating.

This is happening due to prefetch regular expression expects /// or at least * as the starting marker for possible annotation:
https://github.com/ConsenSys/scribble/blob/b9ca40e6a0f2e47e08057fea2c5ba491ef2ec4e2/src/instrumenter/annotations.ts#L395-L396
Basically, the prefix is \s*(\*|\/\/\/)\s* is causing this. We also have a parser test, but no test for prefetching logic.

If we remove the mentiond regex prefix, the original sample will work as expected. HOwever this would affect common behavior. So I guess I would just leave it as a known issue until it get some external attention.

We originally added this to try and avoid cases where the property keyword appeared randomly in a comment. However now that we added the '#' prefix for all keywords, I think its ok to drop the extra prefix for the regex. Will prep a PR

Fixed  by #186


winget install netron "Multiple packages found matching input criteria. Please refine the input."

Netron app and version:
N/A

OS and browser version:
Edition	Windows 10 Home
Version	20H2
Installed on	9/26/2020
OS build	19042.1237
Experience	Windows Feature Experience Pack 120.2212.3530.0

Steps to Reproduce:

Open windows CLI
execute the command "winget install netron"

Note:  executing the command "winget install LutzRoeder.Netron" works.

microsoft/winget-cli#1523


Issue #1024

Why are locking the issue https://github.com/Symplify/Symplify/issues/1024 before it was solved? That's disappointing!
Unfortunately, you didn't  look into the config file that I've sent you, and the CLI output file :(
I looked again in the CLI output file and there was info at the bottom:
Applied checkers:

 - PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\FunctionCallArgumentSpacingSniff.TooMuchSpaceAfterComma
 - PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\FunctionCallSignatureSniff.SpaceAfterCloseBracket
 - PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\FunctionDeclarationArgumentSpacingSniff.SpacingBeforeArg
 - PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ControlStructureSpacingSniff.NoLineAfterClose
 - PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ControlStructureSpacingSniff.SpacingAfterOpen
 - PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SemicolonSpacingSniff.Incorrect
 - PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff.EndLine

which surprised me because I was sure that I was testing only the SemicolonSpacingSniff.
So I looked again at the config file and I saw that I left the import in it:
imports:
   - { resource: '%vendor_dir%/symplify/easy-coding-standard/config/psr2.yml' }

services:

    # Semicolons should not have spaces before them
    PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SemicolonSpacingSniff: ~

After I removed the import, SemicolonSpacingSniff ran correctly.
So it was my mistake that I left the import in the config file, however this indicates that there is a conflict between SemicolonSpacingSniff and your psr2.yml
Again, I'm just a user here, with zero expertise on writing and testing sniffs, so I have to rely on you and your expertise to solve it.
Now it should be easy for you to reproduce the issue - just run my config with the psr2 import ...

Why are you saying that I don't plan to cooperate?
I've submitted you all files, screenshots, etc.,
After you locked me out from the previous case, I went back to check on the files and now I've provided you with information that you can use to easily reproduce the issue. If this is not showing a willingness to cooperate, then what is?
But with all due respect, I have zero expertise in writing and testing sniffs.  That was the reason why I wanted to use your solution, so I wouldn't have to write my own sniffs.
And while I appreciate your willingness to provide the solution, now is up to you - you can run my config and easily reproduce the issue and fix it, or you can ignore it and close it.

In this comment: https://github.com/Symplify/Symplify/issues/1024#issuecomment-414592429
I wrote I need a test case. From this https://github.com/Symplify/Symplify/issues/1024#issuecomment-414599569
I understood you don't want to send a test case.
I've provided pull-request code: https://github.com/Symplify/Symplify/pull/1026/files where you only need to copy-paste your PHP & Yaml code.
It's up to you

Closing for missing test and unable to reproduce.


is this still in preview or is it now production?

Is this feature still in preview or is it available for production? the setting to enable it in Azure says "preview" but i don't see that this is in "preview" anywhere in the article.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 12802c79-252a-3284-d0dc-e805a9516ae7
Version Independent ID: 89652951-8794-7124-e684-273b3f501e1f
Content: Get started with combined registration - Azure Active Directory
Content Source: articles/active-directory/authentication/howto-registration-mfa-sspr-combined.md
Service: active-directory
Sub-service: authentication
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

@jreyes4949 Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

The feature is GA.
From the blog announcement - https://techcommunity.microsoft.com/t5/azure-active-directory-identity/combined-mfa-and-password-reset-registration-is-now-generally/ba-p/1257355

Even though MFA/SSPR Combined Registration is now generally available, we aren’t automatically switching everyone over to the new user experience. We want to give you the control over when you update your end user experiences. This gives you more time to test it out, update training materials, and notify your end users.

As such, it's still enabled under user preview features, although there's no longer a preview note next to the check box in the portal. The doc will be updated when this is no longer the case.
#please-close


Auto-cached worlds tend to kick you back to home

I've noticed that since this VRCX update some worlds that were cached from an invite or VIP world change have a tendency to go through the loading screen twice before dropping me back in my homeworld.

Yea I'm having the bug too and I'm currently in the process of figuring it out.

Yea I'm having the bug too and I'm currently in the process of figuring it out.

I see. Have to do some more testing, but tried one test of caching a large world and going into it while it was processing and the issue came up for me then, but I was able to get into the world when I tried loading it again. This is odd because when I came across the issue before I was unable to go to any of the worlds affected by this without first clearing my cache.

Hopefully fixed now, maybe.


different users / paths

can we use this for basic ACL?
eg to have admin users in one httpasswd file and access to all paths
and editors in another htpasswd and protect only some other custom paths?

Yes, just create multiple instances of basic or digest authentication with each file.


new instances duplicate on page

This really is great, thanks first of all!
Second, If I confirm box, and choose cancel, then go into it again, it duplicates the confirmation box.
It's as if the first never disposes properly. So I have one confirmation box to close, then I have to close it again - you can also see the background gets darker each time you load a new one.
Do you have a dispose event I could use to ensure each new call is only done so once?

It actually happens when I have a success box, then after that have a confirm box, then it seems to duplicate on the confirm...

Hey, thank you for the feedback! Can you upload a video demonstrating the issue?

https://user-images.githubusercontent.com/42800527/126755127-a531f5f1-9b0e-4fa3-9427-dc7a696b3a33.mp4
Here we go, video demonstrating the issue.
It could be due to the partial pages ving rendered in a modal, but all the code for each js call to create the alerts is on the layout page, code and calls.
I have managed to fix it with the following code before my call.
 try {
            var alertWrapper = document.querySelector(".alert-wrapper");
            alertWrapper.remove();
        } catch (ex) {
            console.log('duplicate not found');
        }

This fires the log "duplicate not found" each time, but it does ensure that only 1 content is added via the javascript.
So not really sure if this helps you or anyone else who experienced it, but just letting you know.
Thanks!

How are you making the call to the cuteAlert function?

Hi, I added the js as indicated into the manifest. And then call the alert as described in the documentation. So the page itself has no

Hey, I added a duplicate handler on the last update. Closing this issue for now, if for some reason it happens again, feel free to open another issue. Thanks for the feedback guys.