Hallo zusammen,
ich beschäftige mich zum ersten mal mit dem Thema EcOcean in Verbindung mit SmartHomeNG 1.5.1.
Die Grundsätzliche Inbetriebnahme des Plugins (TCM310 am Serialport) habe ich scheinbar hinbekommen
und es lassen sich im Log Telegramme vom Sensor (nodon sdo2105) beobachten.
Dennoch sieht der Telegrammaufbau im Log nicht aus wie erwartet und es gibt keine weitere Verarbeitung auf der KNX Seite.
Obwohl ich sicher bin, das richtige EEP zu benutzen D5_00_01, steht im Sensortelegramm immer Choice 30, gefolgt von 5 Payload Bytes, Status (immer 0).
Bei D5_00_01 hätte ich Choice D5 und nur ein Payloadbyte (1BS) erwartet.
Das Lesen der Plugin Doku, EnOcean Doku, Sensor Doku, Ein erster zaghafter Blick in die Plugin-Quellen bringen mich an dieser Stelle nicht weiter.
Ich vermute, das ich irgendwo etwas übersehen habe - sehe aber auch nach mehreren Tagen den Wald vor lauter Bäumen nicht mehr.
In dieser Situation würde mir jeder Kommentar helfen, der mich in eine Richtung zur weiteren Fehlersuche lenkt. Gerne aber auch etwas in der Art: "Du Depp, Du hast hier : und = vertauscht)
Zunächst doch meine Randdaten, Konfiguration und Logs:
Soweit alles ok. Der Umzug auf NG 1.5.1 hat geklappt und das System läuft anstandslos.
Darauf Aufbauend die Erweiterung um EnOcean:
1. Pi3b+ RS232 Schnittstelle auf GPIO freischaufeln (siehe diverse Anleitungen im Netz)
2. Plugin einbinden
plugin.yaml
3. Plugin-Logging "Einschalten". Die EnOcean Logs sind im Standart nicht zu sehen und damit bekommt man auch keine Info über z.B. die Base ID
logging.yaml
4. EnOcean ITEM anlegen
enocean.yaml
5. Log auswerten
Ab dieser Stelle muss ich ein wenig orakeln.
Verzweifelte Grüße
Andre
ich beschäftige mich zum ersten mal mit dem Thema EcOcean in Verbindung mit SmartHomeNG 1.5.1.
Die Grundsätzliche Inbetriebnahme des Plugins (TCM310 am Serialport) habe ich scheinbar hinbekommen
und es lassen sich im Log Telegramme vom Sensor (nodon sdo2105) beobachten.
Dennoch sieht der Telegrammaufbau im Log nicht aus wie erwartet und es gibt keine weitere Verarbeitung auf der KNX Seite.
Obwohl ich sicher bin, das richtige EEP zu benutzen D5_00_01, steht im Sensortelegramm immer Choice 30, gefolgt von 5 Payload Bytes, Status (immer 0).
Bei D5_00_01 hätte ich Choice D5 und nur ein Payloadbyte (1BS) erwartet.
Das Lesen der Plugin Doku, EnOcean Doku, Sensor Doku, Ein erster zaghafter Blick in die Plugin-Quellen bringen mich an dieser Stelle nicht weiter.
Ich vermute, das ich irgendwo etwas übersehen habe - sehe aber auch nach mehreren Tagen den Wald vor lauter Bäumen nicht mehr.
In dieser Situation würde mir jeder Kommentar helfen, der mich in eine Richtung zur weiteren Fehlersuche lenkt. Gerne aber auch etwas in der Art: "Du Depp, Du hast hier : und = vertauscht)
Zunächst doch meine Randdaten, Konfiguration und Logs:
- Raspberry Pi3b+
- KNX-USB REG Merten
- Enocean Pi 868 Mod, (TCM310)
- Fensterkontakt NODON SDO2105
- OneWire mit eigenem Busmaster an I2C
- smarthomeNG 1.5.1, smartVISU 2.8
- Anfang Dez 2019 Debian, knxd, smartVISU, Onewire nach Anleitung mit den jeweils verfügbaren Versionen komplett neu Aufgesetzt (https://www.smarthomeng.de/user/inst...ng_debian.html)
- KNXD und der Merten USB Adapter liefen erst zusammen, nachdem ich im code den Timeout geändert habe (soll hier nicht das Thema sein. Hab die Lösung von Ersin benutzt (https://github.com/knxd/knxd/pull/291/commits)
- Alle items, Logiken und Conf Dateien soweit möglich mit dem Tool conf_to_yaml_converter.py von SmartHome 1.0 migriert.
- Alle HTML-Datein von smartVISU 2.7 übernommen, Vereinzelt *.PNG nach *.SVG geändert
Soweit alles ok. Der Umzug auf NG 1.5.1 hat geklappt und das System läuft anstandslos.
Darauf Aufbauend die Erweiterung um EnOcean:
1. Pi3b+ RS232 Schnittstelle auf GPIO freischaufeln (siehe diverse Anleitungen im Netz)
2. Plugin einbinden
plugin.yaml
Code:
xenocean: plugin_name: enocean serialport: /dev/ttyAMA0 tx_id: ff954d80
logging.yaml
Code:
plugins.enocean: handlers: [shng_details_file] level: DEBUG
enocean.yaml
Code:
EnOceanItem: Door: enocean_rx_id: 05115AE0 enocean_rx_eep: D5_00_01 status: type: bool enocean_rx_key: STATUS knx_dpt: 1 knx_send: 4/4/4 #Nur zum Test
Code:
2018-12-17 22:21:47 WARNING __main__ -------------------- Init SmartHomeNG 1.5.1.master (c4e9acc3) -------------------- 2018-12-17 22:21:47 WARNING __main__ Running in Python interpreter 'v3.5.3 final' on linux platform 2018-12-17 22:21:52 INFO plugins.enocean enocean: Stick TX ID configured via plugin.conf to: ff954d80 2018-12-17 22:21:52 INFO plugins.enocean.eep_parser enocean: eep-parser instantiated 2018-12-17 22:21:52 INFO plugins.enocean.prepare_packet_data enocean-Prepare_Packet_Data-init: Init of Prepare_Packet_Data 2018-12-17 22:21:57 INFO plugins.enocean enocean: item EnOceanItem.Door.status listens to id 05115AE0 with eep D5_00_01 key A 2018-12-17 22:21:57 INFO plugins.enocean enocean: resetting device 2018-12-17 22:21:57 INFO plugins.enocean enocean: sending packet with len = 8 / data = [0x55, 0x00, 0x01, 0x00, 0x05, 0x70, 0x02, 0x0e]! 2018-12-17 22:21:58 INFO plugins.enocean enocean: Reset returned code = OK 2018-12-17 22:21:58 INFO plugins.enocean enocean: requesting id-base 2018-12-17 22:21:58 INFO plugins.enocean enocean: sending packet with len = 8 / data = [0x55, 0x00, 0x01, 0x00, 0x05, 0x70, 0x08, 0x38]! 2018-12-17 22:21:58 INFO plugins.enocean enocean: Base ID = 0xff954d80 2018-12-17 22:21:58 INFO plugins.enocean enocean: Remaining write cycles for Base ID = 10 2018-12-17 22:21:58 INFO plugins.enocean enocean: requesting version information 2018-12-17 22:21:58 INFO plugins.enocean enocean: sending packet with len = 8 / data = [0x55, 0x00, 0x01, 0x00, 0x05, 0x70, 0x03, 0x09]! 2018-12-17 22:21:59 INFO plugins.enocean enocean: Chip ID = 0x05122a9b / Chip Version = 0x454f0103 2018-12-17 22:21:59 INFO plugins.enocean enocean: APP version = 2.11.1.0 / API version = 2.6.3.0 / App description = GATEWAYCTRL 2018-12-17 22:22:48 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0x1b, 0x19, 0xd4, 0x88, 0x05] / sender_id = 05115AE0 / status = 0 / repeat = 0 2018-12-17 22:23:07 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0xcd, 0xe5, 0xf5, 0x0c, 0x80] / sender_id = 05115AE0 / status = 0 / repeat = 0 2018-12-17 22:23:07 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0x76, 0xef, 0x70, 0x41, 0x78] / sender_id = 05115AE0 / status = 0 / repeat = 0 2018-12-17 22:23:08 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0xd8, 0xd0, 0xf1, 0xf2, 0x6d] / sender_id = 05115AE0 / status = 0 / repeat = 0 2018-12-17 22:23:57 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0x7c, 0x80, 0x22, 0x93, 0x35] / sender_id = 05115AE0 / status = 0 / repeat = 0 2018-12-17 22:24:11 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0xd6, 0x88, 0xc2, 0x11, 0x64] / sender_id = 05115AE0 / status = 0 / repeat = 0 2018-12-17 22:24:50 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0xca, 0x15, 0xdf, 0xbc, 0x05] / sender_id = 05115AE0 / status = 0 / repeat = 0 2018-12-17 22:25:11 INFO plugins.enocean enocean: radio message: choice = 30 / payload = [0x71, 0xf6, 0x4e, 0x82, 0xcd] / sender_id = 05115AE0 / status = 0 / repeat = 0
Ab dieser Stelle muss ich ein wenig orakeln.
- RS232 Schnittstelle und EnOcean-Hardware funktioniert einwandfrei, da ich die sender_id richtig zurückgemeldet bekomme.
- Ich bin mir Unsicher ob enocean_rx_key: STATUS richtig ist? Wird dort evtl. auch der "Short_Cut: CO" verwendet?
Siehe 1BS Protokoll und EEP D5_00_01 in der Offiziellen EnOcean EEP Beschreibung 2.6.8?
enocean_rx_key: CO ?
enocean_rx_key: A ? - Woher kommt "Choice 30" ? Die Zahl 30 macht mich in der Logdatei stutzig.
- Kann das das Ergebnis eines falschen Einlerntelegramms sein ?
Bei mir klappt der Aufruf der Interaktiven Konsole nicht, daher habe ich den Befehl zum Anlernen in eine vorhandene Logik gepackt und triggere diese mit einem KNX-Taster *quick & dirty*
Code:
[B]if[/B] sh.Zentralfunktion.Anwesend(): [B]if[/B] [B]not[/B] sh.IntVar.Zentralfunktion.Anwesend(): sh.IntVar.Zentralfunktion.Anwesend ([B]'on'[/B]) logger.warning ([B]"Anwesend: Wird von aendern auf true gesetzt")[/B] [COLOR=#FF0000][B]sh.xenocean.send_learn_protocol()[/B][/COLOR] [B]else[/B]: [B]if[/B] sh.IntVar.Zentralfunktion.Anwesend(): sh.IntVar.Zentralfunktion.Anwesend ([B]'off'[/B]) logger.warning ([B]"Anwesend: Wird von aendern auf false gesetzt")[/B]
- Müssen "Sensoren" überhaupt eingelernt werden ?
Verzweifelte Grüße
Andre
Kommentar