Ach sooo-.. Werde ich gleich ändern. Und: Ich hatte die 16 GB Speicherkarte einfach von einem Image des produktiven Raspi-Geräts aufgespielt. Aber ich habe raspi-config nicht laufengelassen hier auf dem Test-Raspi... Werde ich auch noch nachholen... Ich bin nun bis 17 Uhr weg, melde mich danach wieder :-)
Ankündigung
Einklappen
Keine Ankündigung bisher.
Zigbee Sensoren via zigbee2mqtt Plugin an SmartHomeNG
Einklappen
X
-
Das mit den Logs ist nun klar: Ich sollte mir hat schon die letzte Seite oben auf der Logübersicht anzeigen lassen..... :-)
Was ich aber habe, sind massenweise Einträge alle 20 Sekunden (!) im smarthome-warnings.log wie diese da:
2021-11-15 13:32:49 WARNING lib.network Connection closed by peer 127.0.0.1
Update: Der Grund war, dass der Tunnel des Siemens IP-KNX-Routers nur 1 Device zur Kommunikation zulässt. Nach Abschalten des produktiven Raspis's sind diese Einträge nun verschwunden!
Dafür läuft es jetzt aber korrekt ab in Sachen ZigBEE!!
Ich erhalte im Item Baum bei den Werten jeweils die EInträge, welche ZigBEE übermittelt: Also beim click: single, double,hold,release. Bei action nur dann etwas, wenn ich länger drücke, also hold und release!Zuletzt geändert von devau; 15.11.2021, 18:02.
Kommentar
-
Mittlerweile kann ich auch ein knx-Licht ein/ausschalten mit etwas Hilfslogik, da ja nur ein "single" übermittelt wird bei einem Tastendruck. Via Autotimer setze ich dann den Wert bei "click" wieder zurück. Das gibt zwar die folgende Warnung, aber es funktioniert trotzdem:
WARNING plugins.priv_tasmota update_item: ZB.Switch.X54EB.click, trying to change item in SmartHomeNG that is read only in tasmota device (by Autotimer)
Code:# ZB.Switch.X54EB.yaml ZB: Switch: X54EB: click: type: str tasmota_topic: tasmota_A8D079 tasmota_zb_device: SWITCH1 tasmota_zb_attr: click autotimer: 10 = '' on_change: - ZB.Switch.X54EB.trigger_H = 1 if sh..self() == 'single' and sh.OG.Buero.Licht.Decke.schalten() == 0 else None - ZB.Switch.X54EB.trigger_L = 1 if sh..self() == 'single' and sh.OG.Buero.Licht.Decke.schalten() == 1 else None action: type: str tasmota_topic: tasmota_A8D079 tasmota_zb_device: SWITCH1 tasmota_zb_attr: action trigger_H: type: bool initial_value: 0 autotimer: 10 = 0 on_change: OG.Buero.Licht.Decke.schalten = 1 if sh..self() == 1 else None trigger_L: type: bool initial_value: 0 on_change: OG.Buero.Licht.Decke.schalten = 0 if sh..self() == 1 else None
Kommentar
-
Zitat von devau Beitrag anzeigenDas gibt zwar die folgende Warnung, aber es funktioniert trotzdem:
Wenn du immer wieder das on_change ausführen willst, auch wenn der Wert sich nicht ändert, aber erneut im Item ankommt, nutze das Item attribut "enforce_updates: yes"
Kommentar
-
Hat auch nicht viel gebracht, da das Relais dann innert Sekundenbruchteilen an und wieder abgefallen ist. Ich habe es nun anders gelöst mit einem Delay-Item, so dass zwischen Ein- und Ausschalten mindestens 10 Sekunden vergehen müssen!
Wie nun weiter? Ich habe gestern Abend noch den Aqara Fenster-Sensor erhalten ( https://www.zigbee2mqtt.io/devices/MCCGQ11LM.html ) der hat andere Werte, die da übermittelt werden. Ich bin nun am Einbauen dieses Sensors.
Kommentar
-
Zitat von devau Beitrag anzeigenHat auch nicht viel gebracht, da das Relais dann innert Sekundenbruchteilen an und wieder abgefallen ist. Ich habe es nun anders gelöst mit einem Delay-Item, so dass zwischen Ein- und Ausschalten mindestens 10 Sekunden vergehen müssen!
Im Grund geht das so:
Die Logik wird getriggert, wenn auf den Items des Zigbee Switches Werte ankommen.
Die Logik wertet den Wert aus (hier 'single') und löst direkt das Umschalten auf dem Zielitem aus. Das geht dann einfach mit:
Code:sh.OG.Buero.Licht.Decke.schalten(not sh.OG.Buero.Licht.Decke.schalten())
Zitat von devau Beitrag anzeigenIch habe gestern Abend noch den Aqara Fenster-Sensor erhalten
Kommentar
-
Den Vibrations-Sensor DJT11LM habe ich nun auch erhalten. Dessen Empfindlichkeit kann ich jedoch nicht per Command einstellen:
16:18:57.308 CMD: ZbSend {"Device":"0x99E7", "Endpoint":1, "Send":{"sensitivity": "medium"}}
16:18:57.315 MQT: stat/tasmota_A8D079/RESULT = Unrecognized zigbee command: sensitivity
Update: Ist in einigen Foren nachzulesen, dass das so nicht geht, sondern so:
ZbSend {"Device":"0x99E7", "Endpoint":1, "Manuf":"0x115F", "Write":{"0000/FF0D%20":<Sens>}}
<Sens> ist: 1= High, 11 = Medium, 21 = LowZuletzt geändert von devau; 16.11.2021, 16:52.
Kommentar
-
devau
Zitat von Sisamiwe Beitrag anzeigenIch stelle heute Abend mal ein Beispiel ein.
logik.py
Code:#!/usr/bin/env python3 # tasmota_rfbridge_action.py ## Logik, um basierend auf dem Code eines RF-Tasters Aktionen auszuführen logger.info(f"Logik '{logic.id()}' ausgelöst durch: {trigger['by']} und {trigger['source']} mit Wert {trigger['value']}") #Wenn Trigger ein Item war, dann RF-Data einlesen if trigger['by'].lower() == 'item': rf_data = trigger['value'] ##RF-Data auswerten # Licht Dachboden an bei Empfgang von 3602B2 (links) if rf_data == '3602B2': sh.licht.dachboden.decke.onoff(1) # Licht Dachboden toggeln bei Empfgang von 3602B4 (Mitte) if rf_data == '3602B4': sh.licht.dachboden.decke.onoff(not sh.licht.dachboden.decke.onoff()) # Licht Dachboden aus bei Empfgang von 3602B8 (rechts) if rf_data == '3602B8': sh.licht.dachboden.decke.onoff(0) # Licht Garage aus bei Empfang von CC2871 if rf_data == 'CC2871': sh.licht.garage.decke.onoff(0) # Steckdose Waschmaschine aus bei Empfang von 021FE2 if rf_data == '021FE2': sh.steckdosen.waschkueche.waschmaschine.onoff(not sh.steckdosen.waschkueche.waschmaschine.onoff()) logger.info(f"Steckdose Waschmaschine geschaltet. Neuer Zustand ist {sh.steckdosen.waschkueche.waschmaschine.onoff()}") # Steckdose Wäschetrockner aus bei Empfang von 021FE4 if rf_data == '021FE4': sh.steckdosen.waschkueche.waeschetrockner.onoff(not sh.steckdosen.waschkueche.waeschetrockner.onoff()) logger.info(f"Steckdose Wäschetrockner geschaltet. Neuer Zustand ist {sh.steckdosen.waschkueche.waeschetrockner.onoff()}")
Bei dir sollte das dann so aussehen:
logik.py
Code:# Einlesen der Triggerwerte click = sh.ZB.Switch.X54EB.click() action = sh.ZB.Switch.X54EB.action() ##ZigbeeDaten auswerten # Wenn Einfach-Click, dann Licht Umschalten if click == 'single': sh.OG.Buero.Licht.Decke.schalten(not sh.OG.Buero.Licht.Decke.schalten())
Code:# ZB.Switch.X54EB.yaml ZB: Switch: X54EB: click: type: str tasmota_topic: tasmota_A8D079 tasmota_zb_device: 0x54EB tasmota_zb_attr: click action: type: str tasmota_topic: tasmota_A8D079 tasmota_zb_device: 0x54EB tasmota_zb_attr: action
Kommentar
-
Werde ich alles noch gerne ausprobieren. Der Aqara Vibrationssensor ist schon sehr speziell: Keine Reaktion mehr, der legt sich anscheinend schlafen über Nacht. Keine Erschütterung bringt ihn jetzt mehr zum Erwachen. Das ist der zweite Vib-Sensor, habe den ersten bereits zurückgeschickt weil der genau gleich nicht funktionierte.
In der Tasmota-Konsole werden auf jedenfall keinerlei Einträge mehr von dem generiert..
Ich habe übrigens für diesen Sensor in Deiner plugin.yaml unter "valid_list_ci:" noch diese zwei Werte eingetragen: - AqaraVibrationMode und - AqaraVibrationsOrAngle
Kommentar
-
Zitat von devau Beitrag anzeigenIch habe übrigens für diesen Sensor in Deiner plugin.yaml unter "valid_list_ci:" noch diese zwei Werte eingetragen: - AqaraVibrationMode und - AqaraVibrationsOrAngle
Relevant für die ZigbeeSensoren ist das ItemAttribut "tasmota_zb_attr:" Das ist bislang nicht "konditioniert". Ich habe so gemacht, damit man das Plugin nicht bei jedem neuen Sensor etc ändern muss. Funktionieren tun natürlich nur die Werte, die auch im Dict. Dieses wird im WebIF auch unter "tasmota Zigbee" angezeigt. Wenn man andere Attributwerte nutzt, fängt das Plugin den Fehler ab und meldet das, je nach LogLevel.
Das Item Attibut "tasmota_attr:" wird nur für "native" TasmotaDevices genutzt.
Kommentar
-
Zitat von devau Beitrag anzeigenDa fehlt noch irgendeine Verbindung zu Logic...?
Dann klappt es auch.
Kommentar
Kommentar