BidCos-Adresse SWDO für homebridge-homematic

diverse Zusatzsoftware

Moderator: Co-Administratoren

Antworten
chribuhhh
Beiträge: 3
Registriert: 07.04.2023, 15:23
System: CCU

BidCos-Adresse SWDO für homebridge-homematic

Beitrag von chribuhhh » 08.04.2023, 13:26

Hallo zusammen,

vorab: vielen Dank für das klasse Forum. Ich habe seit einem Jahr mit viel recherchieren viel gelöst. Aktuell stehe ich aber glaube ich total auf dem Schlauch und komme nicht weiter. Kann sein, dass es total einfach ist - verzeiht bitte. Trotz suchen hier, googlen, etc komme ich nicht weiter ... :(

Meine Frage: Wo finde ich die BidCos-RF.KEQXXXXXXX:4-Werte meiner HMIP-SWDOs? Ich möchte meine Fensterkontakte gerne als Türen oder Fenster in homematic-homebridge einbinden (und nicht nur als Sensoren), suche mir aber einen Wolf. Vielen Dank vorab!

Details falls notwendig:
- CCU3 mit HMIP Thermostaten, BROLLs und Fensterkontakten
- Homebridge mit homebridge-homematic auf einem PI
- Theremostate, BROLLs und 1 Fensterkontakt zum Testen über ein Gewerk erfolgreich in Homekit intergriert. Heizung und BROLLs laufen seit einem halben Jahr wie erwartet.
- Der Fensterkontakt wird wie erwartet "nur" als Sensor angezeigt.
Gerne würde ich SIRI-Abfragen nutzen und den Kontakt daher als aktives Fenster oder aktive Tür einbinden (Nachteile sind mir bewusst)
- Da ich bei dem BidCos-Kram total auf dem Schlauch stehe, habe ich mal HmIP-RF.0000D...:1-Adresse in der homebrige-homematic-Config als door bzw window hinterlegt. Damit wird der Kontakt zwar als Gerät im Raum angezeigt, sobald ich das Fenster aber öffne stürzt das Addon mit einer Fehlermeldung ab und startet neu. Falls jemand mal einen mechanischen Weg für einen Neustart sucht, kann ich das empfehlen. Fenster auf, Zack, neustart ;-)
- Gesucht habe in der CCU, im versteckten Dev-Interface der CCU, im (vorab aufwendid gepatchten) Homematic Manager ... ich bin ratlos.

Besten Dank vorab für euer Aushelfen. Falls ich etwas Wichtiges vergessen habe, gerne nachfragen und sorry dafür vorab.

Edit: Zwei ggf. wichtige Dinge vergessen:
- Laut Anleitung soll die BidCos-Adressierung auf :4 enden, bei mir wird der SWDO nur mit HMIP-RF....:1 als Gerät angezeigt. Dann stürzt das Plugin wie gesagt ab
- Fehlermeldung beim Absturz:

Code: Alles auswählen

[8.4.2023, 14:39:48] TypeError: Cannot read properties of undefined (reading 'updateValue')
    at HomeMaticHomeKitContactService.datapointEvent (/var/lib/homebridge/node_modules/homebridge-homematic/ChannelServices/HomeMaticHomeKitContactService.js:349:37)
    at HomeMaticHomeKitContactService.event (/var/lib/homebridge/node_modules/homebridge-homematic/ChannelServices/HomeKitGenericService.js:752:14)
    at /var/lib/homebridge/node_modules/homebridge-homematic/HomeMaticRPC.js:183:19
    at Array.map (<anonymous>)
    at HomeMaticRPC.handleEvent (/var/lib/homebridge/node_modules/homebridge-homematic/HomeMaticRPC.js:179:36)
    at Server.<anonymous> (/var/lib/homebridge/node_modules/homebridge-homematic/HomeMaticRPC.js:134:18)
    at Server.emit (node:events:513:28)
    at /var/lib/homebridge/node_modules/homebridge-homematic/node_modules/homematic-xmlrpc/lib/server.js:42:14
    at Deserializer.callback (/var/lib/homebridge/node_modules/homebridge-homematic/node_modules/homematic-xmlrpc/lib/deserializer.js:65:7)
    at Deserializer.onDone (/var/lib/homebridge/node_modules/homebridge-homematic/node_modules/homematic-xmlrpc/lib/deserializer.js:92:12)
Grüße
Christoph

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 753 Mal

Re: BidCos-Adresse SWDO für homebridge-homematic

Beitrag von shartelt » 08.04.2023, 15:13

HMIP != bidcos

MichaelN
Beiträge: 9686
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: BidCos-Adresse SWDO für homebridge-homematic

Beitrag von MichaelN » 08.04.2023, 15:22

chribuhhh hat geschrieben:
08.04.2023, 13:26
Wo finde ich die BidCos-RF.KEQXXXXXXX:4-Werte meiner HMIP-SWDOs?
Gar nicht, da HMIP Geräte nicht BidCoS-RF sprechen, sondern hmip.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

chribuhhh
Beiträge: 3
Registriert: 07.04.2023, 15:23
System: CCU

Re: BidCos-Adresse SWDO für homebridge-homematic

Beitrag von chribuhhh » 08.04.2023, 23:03

Oh je, das ist ja fast noch offensichtlicher als ich befürchtet hatte. Danke euch beiden und keine Ahnung, warum mir das nicht bewusst geworden ist. Danke für eure Aufklärung.

Damit ist klar, dass ich wohl mit HMIP-RF.... adressieren muss. Mir ist klar, dass homebrdige-homematic relativ alt/unsupportet und das hier keine offizielle Supportseite ist - aber weiß jemand vielleicht woran der Fehler liegt?

Dass die SWDO grundsätzlich funktionieren, sieht man bspw. in diesem alten Thread auf github: https://github.com/thkl/homebridge-homematic/issues/28.

Bei mir ist es aktuell so, dass im Homebridge-Webinterface unter Geräte der "Contact Sensor" entsprechend funktioniert. Beim Öffnen/Schließen wechselt auch der Status wie erwartet. Binde ich den SWDO in der homematic_config.json als window oder door ein, erscheint der SWDO unter Geräte zusätzlich z.B. als "window". Allerdings kommt die oben gequotete Fehlermeldung, sobald ich das Fenster öffne.

Jemand eine Idee?

chribuhhh
Beiträge: 3
Registriert: 07.04.2023, 15:23
System: CCU

Re: BidCos-Adresse SWDO für homebridge-homematic

Beitrag von chribuhhh » 11.04.2023, 10:34

Hallo zusammen,

kurzes Update als Lösungsdoku von mir, falls jemand das gleiche Problem bekommt.

Adressierung mit HmIP-RF.xxx:1 funktioniert, obwohl ich im Netz nur Beispiele mit BidCos-Adressierung finde. Dann kommt es zum oben beschriebenen TypeError.

Eine quick-and-dirty-Analyse von /var/lib/homebridge/node_modules/homebridge-homematic/ChannelServices/HomeMaticHomeKitContactService.js zeigt, dass wohl Charakteristiken (CharacteristicLastOpen bzw. CharacteristicTimesOpened) gesetzt werden sollen, die nur für Contacts, nicht aber für Windows und Doors definiert werden.

Genau verstanden habe ich den Code mangels Zeit nicht. Aber: Fügt man zwei Bedingungen zwecks Prüfung ein, funktionieren die Sensoren wie gewünscht ohne Fehlermeldung. Ich hatte bisher keine Zeit für eine detaillierte Code-Analyse, bisher habe ich aber keine sonstigen Effekte wahrgenommen (was ggf. auch daran liegt, dass in meiner Installation nur meine SWDOs die ContactService.js brauchen)

Alt:

Code: Alles auswählen

if (this.isTrue(newValue)) {
      this.timeClosed = this.timeClosed + (moment().unix() - this.timeStamp)
      this.timesOpened = this.timesOpened + 1
      if (this.loggingService !== undefined) {
        let firstLog = this.loggingService.getInitialTime()
        this.lastOpen = moment().unix() - firstLog
        this.CharacteristicLastOpen.updateValue(this.lastOpen, null)
        this.setPersistentState('lastOpen', this.lastOpen)
      }
      this.CharacteristicTimesOpened.updateValue(this.timesOpened, null)
      this.setPersistentState('timesOpened', this.timesOpened)
    }
Neu (zwei ifs ergänzt)

Code: Alles auswählen

if (this.isTrue(newValue)) {
      this.timeClosed = this.timeClosed + (moment().unix() - this.timeStamp)
      this.timesOpened = this.timesOpened + 1
      if (this.loggingService !== undefined) {
        let firstLog = this.loggingService.getInitialTime()
        this.lastOpen = moment().unix() - firstLog
        //if ergänzt
        if (this.CharacteristicLastOpen !== undefined) {
          this.CharacteristicLastOpen.updateValue(this.lastOpen, null)
        }
        this.setPersistentState('lastOpen', this.lastOpen)
      }
      // if ergänzt
      if (this.CharacteristicTimesOpened !== undefined) {
        this.CharacteristicTimesOpened.updateValue(this.timesOpened, null)
      }
      this.setPersistentState('timesOpened', this.timesOpened)
    } else {
      this.timeOpen = this.timeOpen + (moment().unix() - this.timeStamp)
    }
Cheers! Und nochmals Danke an Michael und shartelt - ohne euren Hinweis hätte ich mir vermutlich einen Wolf an falscher Stelle gesucht...

Antworten

Zurück zu „Sonstige Addons“