Nach "Secure Inklusion" kommen keine automatischen Readings mehr ins FHEM

Begonnen von schnakker, 18 Oktober 2020, 22:02:17

Vorheriges Thema - Nächstes Thema

schnakker

Hallo,

ich möchte mein FHEM um Z-Wave Aktoren/Sensoren erweitern. Hierfür nutze ich einen USB Stick: Z-Wave.Me USB Stick und Sensoren von Sensoren: FIBARO Smart Implant FGBS-222.

Binde ich diese "unsecure" ein funktioniert alles tadellos. Binde ich diese mit "secure enabled" (addNode onSec) ein, werden die Nodes angelegt. Ich erhalte jedoch keine automatischen Readings mehr (Aktualisierung der Werte, wenn Schwellwerte (z.B. Temperatur) erreicht werden). Auch der Event Monitor bleibt leer.
Wenn ich die Abfrage der Werte manuell über die Nodes z.B. mit "smStatus" starte, werden die Werte in den Nodes aktualisiert.

Um Konfigurationsprobleme zu vermeiden, habe ich mir eine zweite FHEM Installation erstellt und dort einen zweiten Z-Wave.Me USB Stick mit eigenen Fibaro Smart Implants angeschlossen. Auch dort habe ich das Problem.

Im direkten Vergleich zwischen Sensoren mit "unsecure" und "secure" Anbindung fiel mir auf, dass bei den "secure" angebundenen Sensoren das Attribut "classes" weniger Klassen enthält. Ich habe diese entsprechend erweitert - jedoch ohne Erfolg.
Nach Lesen mehrere Foreneinträge habe ich auch schon das Setzen der folgenden Paramater:

  • associationDel 1 1
  • mcaAdd 1 0 1 0
  • mcaAdd 2 0 1 1
  • mcaAdd 3 0 1 2
probiert, alles ohne Erfolg.

Weiß jemand, welche Einträge wie gesetzt sein müssen, damit Readings aktualisiert werden? Kennt jemand ggf. eine Doku für "secure" Verbindungen oder was genau es sich mit:

  • assocGroup_X
  • mcCapability_Y
  • mca_Z
auf sich hat?

Viele Grüße, Sandro.

rudolfkoenig

Ich kenne das Gerraet nicht => kann nicht direkt sagen, wie die Loesung ausschaut.

Ich kann nur ein paar Grundlagen wiederholen:
- das ZWave FHEM Modul setzt nach der Inklusion automatisch ein paar Befehle ab, im Modul sind diese mit init gekennzeichnet.
- welche Befehle das sind, haengt davon ab. welche Klassen das Geraet bei der Initialisierung gemeldet hat, und nicht davon, ob es secure inkludiert ist oder nicht. Z.Bsp. wenn es MULTI_CHANNEL hat (Geraet mit mehreren Kanaelen / Subdevices), dann wird mcCreateAll abgesetzt, d.h. bei allen Kanaelen der Reihe nach die Liste der unterstuetzten Klassen abgefragt, und damit jeweils ein FHEM Geraet angelegt.
- etliche Geraete bieten je nach Inkluisionsart (secure vs unsecure) unterschiedliche Klassen an, z.Bsp. erlaubt der Tueroffner nur bei secure Inklusion das Oeffnen der Tuer.
- assocGroup_X: die meisten Geraete unterstuetzten unterschiedliche "Benachrichtigungsgruppen", zum Beispiel ueber Gruppe 1 kriegt man alles mit, ueber 2 nur Temperaturaenderungen, ueber 3 Alarmmeldungen, usw. Damit ein ZWave-Geraet diese Nachrichten bekommt (auch der Controller, und damit FHEM), muss man es in eine oder mehrere Gruppen eintragen.
- mcCapability_Y: siehe commandref
- mca_Z: siehe commandref. Ob eine Nachricht ueber Multi-Channel-Association (Association fuer Subdevices), oder Association (wie oben) gesendet wird, haengt vom Geraetefirmware ab, und steht hoffentlich im Beipackzettel.

schnakker

Hallo Rudolf,

für mich stehen auf dem Beipackzettel zum Smart Implant zu wenig Informationen...oder ich bin einfach zu neu im Z-Wave Thema.

Was ich sagen kann ist, dass beim unsecure/secure Inkludieren legt das Smart Implant seine Sub Nodes an. Allerdings unterscheiden sich die hinterlegten classes bei unsecure und secure. Darauf bist du bereits eingegangen. Dein Beispiel verstehe ich. Allerdings erhalte ich bei einer unsecure Verbindnung die Temperatur des Sensors als Event. Bei einer secure Verbindung nicht...ich fände es komisch, wenn die Übermittlung der Temperatur bei einer secure Verbindung nicht vorgesehen ist. Aber das ist natürlich eine Frage an den Hersteller.

Was ich noch gesehen habe ist, dass man beim Inkludieren ein vom Hersteller spezifischen sechsstelligen Code eingeben soll bzw. den entsprechenden QR Code auf dem Sensor einscannen soll. Da mir total schleierhaft ist, wo man diesen Code eingeben soll und auch zu welchen Zeitpunkt, habe ich mich an den Hersteller gewendet.
Wenn das geklärt ist, kann ich weitersuchen.

Viele Grüße,
Sandro.

rudolfkoenig

Ich gehe davon aus, dass dieser Code bei Security V2 eine Rolle spielt, aber das wird von FHEM nicht untestuetzt

schnakker

Aber an sich sollen die Sensoren ja auch abwärtskompatibel sein. Dann wäre der Code vielleicht nicht das Problem. So bald ich eine Antwort wg. des Codes habe, gebe ich nochmal Bescheid. 

Gibt es schon eine Planung für die Implementierung von Security V2?


rudolfkoenig

Nein, und es gibt ein Geruecht, dass Open-Source Programme dabei keine Chance haben.

schnakker

Ich habe bis ebend angenommen, dass Z Wave ein offener Standard ist und habe mich deswegen für ihn entschieden. Ist dem nicht so?

schnakker

Von Fibaro habe ich bisher keine Rückmeldung erhalten. Dafür habe ich meinen FGBS-222 und den UZB Dongle an einen neu installierten Z-Way Server (https://z-wave.me/z-way/download-z-way/) mit "secure enabled" inkludiert. Ich habe das Inkludieren extra mit "S0" (alte Verschlüsselung) statt "S2", damit das zu FHEM vergleichbar bleibt. Das hat funktioniert und die Readings kamen wíe gewünscht automatisch rein. Somit vermute ich das Problem jetzt eher in FHEM bzw. in meiner Installation. Hat jemand eine Idee, was ich Prüfen kann?


rudolfkoenig

Ich wuerde versuchen folgende Infos
get <device> associationAll
get <device> configAll
get <device> versionClassAll
get <device> mcaAll

von beiden Systemen zu besorgen, und die beiden Sets miteinander vergleichen.
Leider kann ich die z-way Aequivalenten dieser Befehle nicht liefern.

schnakker

Hier mal die FHEM Infos für:

1. secure disabled
get <device> associationAll
2020-10-25 21:34:41 ZWave ZWave_SENSOR_NOTIFICATION_11 assocGroups: 3
2020-10-25 21:34:41 ZWave ZWave_SENSOR_NOTIFICATION_11 assocGroup_1: Max 1 Nodes
2020-10-25 21:34:41 ZWave ZWave_SENSOR_NOTIFICATION_11 assocGroup_2: Max 5 Nodes
2020-10-25 21:34:41 ZWave ZWave_SENSOR_NOTIFICATION_11 assocGroup_3: Max 5 Nodes


get <device> configAll
2020-10-25 21:40:21 ZWave ZWave_SENSOR_NOTIFICATION_11 configAnalogInputsMinimalChangeTo63: 5
2020-10-25 21:40:21 ZWave ZWave_SENSOR_NOTIFICATION_11 configAnalogInputsPeriodicalReports: 0
2020-10-25 21:40:22 ZWave ZWave_SENSOR_NOTIFICATION_11 configExternalSensorsMinimalChangeTo67: 5
2020-10-25 21:40:22 ZWave ZWave_SENSOR_NOTIFICATION_11 configExternalSensorsMinimalChangeTo67: 5
2020-10-25 21:40:23 ZWave ZWave_SENSOR_NOTIFICATION_11 configExternalSensorsPeriodicalReports: 0
2020-10-25 21:40:24 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput1DelayOfAlarmCancellation: 0
2020-10-25 21:40:25 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput1OperatingMode: MonostableButton
2020-10-25 21:40:26 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput1Sensitivity: 10
2020-10-25 21:40:27 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput1SentScenes: 0
2020-10-25 21:40:29 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput1ValueSentTo2ndAssociation47: 255
2020-10-25 21:40:30 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput1ValueSentTo2ndAssociation49: 0
2020-10-25 21:40:31 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput2DelayOfAlarmCancellation: 0
2020-10-25 21:40:32 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput2OperatingMode: MonostableButton
2020-10-25 21:40:34 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput2Sensitivity: 10
2020-10-25 21:40:35 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput2SentScenes: 0
2020-10-25 21:40:36 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput2ValueSentTo3rdAssociation52: 255
2020-10-25 21:40:37 ZWave ZWave_SENSOR_NOTIFICATION_11 configInput2ValueSentTo3rdAssociation54: 0
2020-10-25 21:40:39 ZWave ZWave_SENSOR_NOTIFICATION_11 configInputsOrientation: DefaultIN11stInputIN22ndInput
2020-10-25 21:40:40 ZWave ZWave_SENSOR_NOTIFICATION_11 configInternalTemperatureSensor66: 0
2020-10-25 21:40:41 ZWave ZWave_SENSOR_NOTIFICATION_11 configInternalTemperatureSensorMinimal65: 5
2020-10-25 21:40:42 ZWave ZWave_SENSOR_NOTIFICATION_11 configOutput1AutoOff: 0
2020-10-25 21:40:43 ZWave ZWave_SENSOR_NOTIFICATION_11 configOutput1LogicOfOperation: contactsNormallyOpen
2020-10-25 21:40:44 ZWave ZWave_SENSOR_NOTIFICATION_11 configOutput2AutoOff: 0
2020-10-25 21:40:46 ZWave ZWave_SENSOR_NOTIFICATION_11 configOutput2LogicOfOperation: contactsNormallyOpen
2020-10-25 21:40:47 ZWave ZWave_SENSOR_NOTIFICATION_11 configOutputsOrientation: DefaultOUT11stOutputOUT22nd0


get <device> versionClassAll
ALARM:8 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:2 CENTRAL_SCENE:3 CONFIGURATION:1 CRC_16_ENCAP:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:4 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL:4 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 PROTECTION:2 SECURITY:1 SECURITY_S2:1 SENSOR_MULTILEVEL:11 SUPERVISION:1 SWITCH_BINARY:1 TRANSPORT_SERVICE:2 VERSION:2 ZWAVEPLUS_INFO:2

get <device> mcaAll
2020-10-25 21:36:29 ZWave ZWave_SENSOR_NOTIFICATION_11 mcaGroups: 3
2020-10-25 21:36:29 ZWave ZWave_SENSOR_NOTIFICATION_11 mca_1: Max 1 Nodes ZWDongle_1:0
2020-10-25 21:36:29 ZWave ZWave_SENSOR_NOTIFICATION_11 mca_2: Max 5
2020-10-25 21:36:30 ZWave ZWave_SENSOR_NOTIFICATION_11 mca_3: Max 5


Subdevice x.07 - hierüber kommt die Temperatur als Event
attribut classes
ZWAVEPLUS_INFO ASSOCIATION MULTI_CHANNEL_ASSOCIATION ASSOCIATION_GRP_INFO SENSOR_MULTILEVEL ALARM SUPERVISION APPLICATION_STATUS SECURITY SECURITY_S2



2. secure enabled
get <device> associationAll
2020-10-25 21:37:15 ZWave ZWave_SENSOR_NOTIFICATION_12 assocGroups: 3
2020-10-25 21:37:15 ZWave ZWave_SENSOR_NOTIFICATION_12 assocGroup_1: Max 1 Nodes
2020-10-25 21:37:16 ZWave ZWave_SENSOR_NOTIFICATION_12 assocGroup_2: Max 5 Nodes
2020-10-25 21:37:16 ZWave ZWave_SENSOR_NOTIFICATION_12 assocGroup_3: Max 5 Nodes


get <device> configAll
2020-10-25 21:41:25 ZWave ZWave_SENSOR_NOTIFICATION_12 configAnalogInputsMinimalChangeTo63: 5
2020-10-25 21:41:25 ZWave ZWave_SENSOR_NOTIFICATION_12 configAnalogInputsPeriodicalReports: 0
2020-10-25 21:41:27 ZWave ZWave_SENSOR_NOTIFICATION_12 configExternalSensorsMinimalChangeTo67: 5
2020-10-25 21:41:29 ZWave ZWave_SENSOR_NOTIFICATION_12 configExternalSensorsPeriodicalReports: 0
2020-10-25 21:41:29 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput1DelayOfAlarmCancellation: 0
2020-10-25 21:41:30 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput1OperatingMode: MonostableButton
2020-10-25 21:41:30 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput1Sensitivity: 10
2020-10-25 21:41:31 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput1SentScenes: 0
2020-10-25 21:41:32 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput1ValueSentTo2ndAssociation47: 255
2020-10-25 21:41:33 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput1ValueSentTo2ndAssociation49: 0
2020-10-25 21:41:34 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput2DelayOfAlarmCancellation: 0
2020-10-25 21:41:35 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput2OperatingMode: MonostableButton
2020-10-25 21:41:35 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput2Sensitivity: 10
2020-10-25 21:41:36 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput2SentScenes: 0
2020-10-25 21:41:36 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput2ValueSentTo3rdAssociation52: 255
2020-10-25 21:41:37 ZWave ZWave_SENSOR_NOTIFICATION_12 configInput2ValueSentTo3rdAssociation54: 0
2020-10-25 21:41:38 ZWave ZWave_SENSOR_NOTIFICATION_12 configInputsOrientation: DefaultIN11stInputIN22ndInput
2020-10-25 21:41:39 ZWave ZWave_SENSOR_NOTIFICATION_12 configInternalTemperatureSensor66: 0
2020-10-25 21:41:40 ZWave ZWave_SENSOR_NOTIFICATION_12 configInternalTemperatureSensorMinimal65: 5
2020-10-25 21:41:41 ZWave ZWave_SENSOR_NOTIFICATION_12 configOutput1AutoOff: 0
2020-10-25 21:41:42 ZWave ZWave_SENSOR_NOTIFICATION_12 configOutput1LogicOfOperation: contactsNormallyOpen
2020-10-25 21:41:42 ZWave ZWave_SENSOR_NOTIFICATION_12 configOutput2AutoOff: 0
2020-10-25 21:41:43 ZWave ZWave_SENSOR_NOTIFICATION_12 configOutput2LogicOfOperation: contactsNormallyOpen
2020-10-25 21:41:45 ZWave ZWave_SENSOR_NOTIFICATION_12 configOutputsOrientation: DefaultOUT11stOutputOUT22nd0


get <device> versionClassAll
ALARM:8 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:2 CENTRAL_SCENE:3 CONFIGURATION:1 CRC_16_ENCAP:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:4 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL:4 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 PROTECTION:2 SECURITY:1 SECURITY_S2:1 SENSOR_MULTILEVEL:11 SUPERVISION:1 SWITCH_BINARY:1 TRANSPORT_SERVICE:2 VERSION:2 ZWAVEPLUS_INFO:2

get <device> mcaAll
2020-10-25 21:39:46 ZWave ZWave_SENSOR_NOTIFICATION_12 mcaGroups: 3
2020-10-25 21:39:46 ZWave ZWave_SENSOR_NOTIFICATION_12 mca_1: Max 1 Nodes ZWDongle_1:0
2020-10-25 21:39:47 ZWave ZWave_SENSOR_NOTIFICATION_12 mca_2: Max 5
2020-10-25 21:39:47 ZWave ZWave_SENSOR_NOTIFICATION_12 mca_3: Max 5


Subdevice x.07 - hierüber kommt die Temperatur als Event
attribut classes
ZWAVEPLUS_INFO SUPERVISION APPLICATION_STATUS SECURITY SECURITY_S2


Die entsprechenden Werte von Z-Way habe ich nur zum Teil rauskitzeln können.
Z-Way Pendant zu get <device> associationAll
/: None (22:04)
    1: None (22:19)
        max: 1 (22:19)
        nodes: (22:19)
    2: None (22:04)
        max: 5 (22:04)
        nodes: (22:04)
    3: None (22:04)
        max: 5 (22:04)
        nodes: (22:04)
    supported: true (22:04)
    version: 2 (22:04)
    security: true (22:04)
    interviewDone: true (22:04)
    interviewCounter: 9 (22:04)
    groups: 3 (22:04)
    specificGroup: 1 (22:04)


Z-Way Pendant zu get <device> mcaAll
/: None (22:04)
    1: None (22:12)
        max: 1 (22:12)
        nodesInstances: (22:12)
    2: None (22:04)
        max: 5 (22:04)
        nodesInstances: (22:04)
    3: None (22:04)
        max: 5 (22:04)
        nodesInstances: (22:04)
    supported: true (22:04)
    version: 3 (22:04)
    security: true (22:04)
    interviewDone: true (22:04)
    interviewCounter: 9 (22:04)
    groups: 3 (22:04)


Daher würde ich mich jetzt erst einmal auf die FHEM Werte konzentrieren.

Was ich sehr komisch finde ist, dass bei dem Subdevice x.07 (secure enabled), über das die Temperatur reinkommen soll, das Attribut classes unvollständig reinkommt. Es müsste ja zu mindestens noch "MULTI_CHANNEL_ASSOCIATION" enthalten sein.
Erst wann man den Eintrag manuell per Hand ergänzt, bekommt man erst Zugriff auf die Temperatur (! nur mit manuellem Abruf, kein automatisches Event !).

Hast du eine Idee, woran das liegen könnte?

rudolfkoenig

ZitatWas ich sehr komisch finde ist, dass bei dem Subdevice x.07 (secure enabled), über das die Temperatur reinkommen soll, das Attribut classes unvollständig reinkommt.
Unvollstaendig oder leer?
In deiner Ausgabe ist MULTI_CHANNEL_ASSOCIATION Teil von classes in x.07. Ist das nach der manuellen Modifikation?

Subdevice x.y wird nach einem "get x mcCapability y" angelegt, was wiederum als Teil von mcCreateAll bei der Inklusion durchgefuehrt wird. Die Werte, die als Resultat beim mcCapability angezeigt werden, muessen in classes der Subdevice landen. Vermutlich ist hier was schiefgegangen, waere gut zu wissen wo/was: was ist das Ergebnis von "get x mcEndpoints" und "get x mcCapability 7"? 

schnakker

Ja, ich denke so langsam kommen wir zum Problem.

Kurze Info vorweg: Die eingestellten Infos (25.10.2020 22:44:54) habe ich direkt nach dem Inkludieren abgefragt. Ich habe dort keine manuellen Eingriffe vorgenommen. Da ich die beiden Devices bei Z Way inkludiert habe, um mal die Werte zu vergleichen. Haben ich sie jetzt wieder ganz neu in FHEM inkludiert.

Bei dem security enabled (Haupt)Device sind nur folgende Werte:
ZWAVEPLUS_INFO SUPERVISION APPLICATION_STATUS SECURITY SECURITY_S2
enthalten.

Und das sind auch die classes die im Sub-Device angezeigt werden.

Hier die angefragten Infos für das secure enabled device
get x mcEndpoints
mcEndpoints:total 7, different

get x mcCapability 7
Da gibt es eine Fehlermeldung:
get mcCapability needs one parameter - siehe Anhang: Screenshot 2020-10-26 212628.png.

Bei dem secure disabled Device erhalte ich bei der selben Abfrage die Meldung:
mcCapability_07:ZWAVEPLUS_INFO ASSOCIATION MULTI_CHANNEL_ASSOCIATION ASSOCIATION_GRP_INFO SENSOR_MULTILEVEL ALARM SUPERVISION APPLICATION_STATUS SECURITY SECURITY_S2
- siehe Anhang: Screenshot 2020-10-26 212628.

Hier scheint das Problem zu liegen. Kann es sein, das FHEM bei der verschlüsselten Verbindung bei der Abfrage "mcCapability x" den Parameter nicht weitergibt? Ich habe mal alle Werte 1 - 7 durchprobiert. Überall erhalte ich die selbe Fehlermeldung...
get mcCapability needs one parameter

Das wird auch unterstützt von diesem Versuch:
Wenn ich als Parameter einen Buchstaben hinterlege, dann erhalte ich bei dem secure disabled device die Fehlermeldung:
Error: a is not a decimal number
Die selbe Abfrage bei dem secure enabled device erzeugt die bekannte Fehlermeldung:
get mcCapability needs one parameter

Es sieht mir danach aus, dass der Parameter einfach nicht mitgegeben wird.

Ich versuche mir mal den Code vom ZWave Modul anzuschauen, wäre aber sehr dankbar, wenn es noch einen zweiten (Wissenden) gibt, der dort auch mal reinschaut.

schnakker

Ich habe mir auf Github

fhem/fhem/FHEM/10_ZWave.pm

und

fhem/fhem/FHEM/00_ZWDongle.pm

angeschaut. Bei beiden konnte ich nicht erkennen, wo die Fehlermeldung her kommen könnte. Allerdings sind beide pms 7 Jahre alt. Da wäre der Fehler wohl schon längst aufgefallen.

Irgendwelche Ideen?

rudolfkoenig

Github ist der falsche Ort, richtig ist https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/10_ZWave.pm

Da ich die Meldung nicht nachstellen kann: kannst Du bitte die Raw-Definition der beiden Geraete (Main- und Subdevice) hier anhaengen?

Am besten zusammen mit der Ausgabe eines erneuten "get X mcCapability 7" Versuchs, nachdem Du in FHEM/10_ZWave.pm, Zeile 1106 (vor dem return), Folgende eingefuegt:
Log 1, $cmdFmt;
und FHEM neugestartet hast.

schnakker

Anbei die RAW Definitions - jeweils einmal mit und ohne aktivierter Option "Dump "Probably associated with" too".

Nachdem ich nun die Datei ZWave.pm angepasst und FHEM neugestartet habe, erhalte ich keine Fehlermeldung mehr. Jetzt erhalte ich:
mcCapability_07:ZWAVEPLUS_INFO SUPERVISION APPLICATION_STATUS SECURITY SECURITY_S2

Aber nun fehlt immer noch die Klasse: "MULTI_CHANNEL_ASSOCIATION". Wie bekommen wir die Klasse jetzt noch rein?