Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug bij gebruik van 1 capcode? #66

Open
nhenkens opened this issue Mar 1, 2022 · 4 comments
Open

Bug bij gebruik van 1 capcode? #66

nhenkens opened this issue Mar 1, 2022 · 4 comments

Comments

@nhenkens
Copy link

nhenkens commented Mar 1, 2022

Ik heb een tijdje zitten stoeien met het filteren op capcodes. Hele regio, binnen een radius, etc. werkte goed, maar enkel één capcode kreeg ik niet aan de praat. Ik heb vervolgens de log door zitten kijken en wat geprobeerd en kom op het volgende issue:

sensor:
  - platform: p2000
    name: p2000_blusgroep
    regios: 9
    scan_interval: 15
    capcodes: 0706001
    icon: mdi:fire-truck

De bovenstaande configuratie levert mij in in de log het volgende op:

2022-02-28 19:56:55 DEBUG (MainThread) [custom_components.p2000.sensor] Filtering on Regio(s) ['9']
2022-02-28 19:56:55 DEBUG (MainThread) [custom_components.p2000.sensor] Searching for regio 9 in 9
2022-02-28 19:56:55 DEBUG (MainThread) [custom_components.p2000.sensor] Regio matched
2022-02-28 19:56:55 DEBUG (MainThread) [custom_components.p2000.sensor] Filtering on Capcode(s) ['232449']
2022-02-28 19:56:55 DEBUG (MainThread) [custom_components.p2000.sensor] Searching for capcode 232449 in 0706001
2022-02-28 19:56:55 DEBUG (MainThread) [custom_components.p2000.sensor] Capcode filter mismatch, discarding

Om de een of andere reden lijkt er gezocht te worden op de capcode 232449 i.p.v. 0706001.
Vervolgens heb ik de configuratie aangepast naar:

sensor:
  - platform: p2000
    name: p2000_blusgroep
    regios: 9
    scan_interval: 15
    capcodes: 0706001,706001
    icon: mdi:fire-truck

En vreemd genoeg werkt het nu wel:

2022-03-01 11:04:33 DEBUG (MainThread) [custom_components.p2000.sensor] Filtering on Regio(s) ['9']
2022-03-01 11:04:33 DEBUG (MainThread) [custom_components.p2000.sensor] Searching for regio 9 in 9
2022-03-01 11:04:33 DEBUG (MainThread) [custom_components.p2000.sensor] Regio matched
2022-03-01 11:04:33 DEBUG (MainThread) [custom_components.p2000.sensor] Filtering on Capcode(s) ['0706001', '706001']
2022-03-01 11:04:33 DEBUG (MainThread) [custom_components.p2000.sensor] Searching for capcode 0706001 in 0706001
2022-03-01 11:04:33 DEBUG (MainThread) [custom_components.p2000.sensor] Capcode filter matched

Enig idee wat dit veroorzaakt?

@jgverweij
Copy link

Weet niet of dit de oplossing is, maar volgens de documentatie moet de voorloop-0 worden weggelaten:

NOTE: Regarding capcodes; Make sure you specify the correct matching regio(s) in your config and remove leading 0's ie. capcode 0100001 is received as 100001

@nhenkens
Copy link
Author

nhenkens commented Mar 1, 2022

Weet niet of dit de oplossing is, maar volgens de documentatie moet de voorloop-0 worden weggelaten:

NOTE: Regarding capcodes; Make sure you specify the correct matching regio(s) in your config and remove leading 0's ie. capcode 0100001 is received as 100001

Ja, dat had ik ook gelezen (en geprobeerd), maar dat werkt ook niet. Uiteindelijk wordt volgens de log ook 0706001 gevonden (en niet 706001). Als ik trouwens alleen capcode 706001 gebruik, dan vindt hij niets maar zoekt het script wel echt naar 706001, terwijl er bij alleen het gebruik van 0706001 dus naar een hele andere code wordt gezocht volgens de log (232449). Mogelijk wordt dat wel ergens veroorzaakt doordat de capcode met een 0 begint.

@jgverweij
Copy link

Misschien kun je de capcode tussen aanhalingstekens zetten, zodat deze expliciet als string wordt verwerkt i.p.v. als getal?

In de code van de P2000 sensor wordt de Python String strip() Method aangeroepen. Deze geeft een syntax error wanneer je een getal met voorloop-0 ingeeft:

SyntaxError: leading zeros in decimal integer literals are not permitted (...)

Overigens ook bij een getal zonder voorloop-0:

AttributeError: 'int' object has no attribute 'strip'

Er is namelijk een string vereist. Dus wie weet helpt dit.

@nhenkens
Copy link
Author

nhenkens commented Mar 2, 2022

Misschien kun je de capcode tussen aanhalingstekens zetten, zodat deze expliciet als string wordt verwerkt i.p.v. als getal?

In de code van de P2000 sensor wordt de Python String strip() Method aangeroepen. Deze geeft een syntax error wanneer je een getal met voorloop-0 ingeeft:

SyntaxError: leading zeros in decimal integer literals are not permitted (...)

Overigens ook bij een getal zonder voorloop-0:

AttributeError: 'int' object has no attribute 'strip'

Er is namelijk een string vereist. Dus wie weet helpt dit.

Dat werkt inderdaad! Ik dacht dat ik dat ook geprobeerd had, maar blijkbaar niet.

Maar capcode.strip() lijkt dan dus niet echt meer nodig. De capcodes in de RSS-feed bevatten ook de voorloop-0 (en wordt in de code niet gestript). Misschien is dit nog een overblijfsel van de oude RSS-feed (die dat misschien niet had)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants