Bisher ist da noch gar nichts rumgekommen. Ich habe einige Punkte für das MQTT Plugin. Ich wollte das mit der Anpassung des Plugins für MQTT 5.0 machen. Allerdings zieht sich das Release des v5.0 kompatiblen paho-mqtt Packages.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues MQTT Plugin
Einklappen
X
-
Zitat von henfri Beitrag anzeigenIch will gerade eine SonOff Steckdose per MQTT einbinden
Sie braucht statt 1 und 0 per MQTT ON und OFF
ich habe auch diverse SONOFF eingebunden und nutze die Tasmota FW und MQTT. Ich mach das ohne Hilfitems so:
Code:sonoff: sonoff_b1: type: str mqtt_topic_in: SONOFF_B1/tele/LWT telegram_message: 'sonoff_b1: [VALUE]!' switch: type: bool mqtt_topic_out: SONOFF_B1/cmnd/POWER switch_num: name: 0-off, 1-on, 2-toggle type: num mqtt_topic_out: SONOFF_B1/cmnd/POWER uzsu: type: dict uzsu_item: .. cache: yes trigger: type: bool on_update: "... = value if (sh....uzsu.planned()['value'] != value) and (sh....uzsu.activate() == True) else None" power: type: str mqtt_topic_in: SONOFF_B1/stat/POWER cache: yes on_update: sonoff.sonoff_b1.switch = value == "ON" sensor: type: dict mqtt_topic_in: SONOFF_B1/tele/SENSOR cache: yes #{"time":"2018-08-18t16:51:02","ds18b20":{"temperature":26.1},"tempunit":"C"} temp: type: num eval: sh...()['DS18B20']['Temperature'] eval_trigger: .. unit: type: str eval: sh...()['TempUnit'] eval_trigger: .. status: type: dict mqtt_topic_in: SONOFF_B1/tele/STATE cache: yes #SONOFF_B1/tele/STATE = {"Time":"2019-08-05T21:25:48","Uptime":"3T01:20:20","Heap":16,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"POWER":"ON","Wifi":{"AP":1,"SSId":"WLAN-Access","BSSId":"CC:CE:1E:C4:EF:11","Channel":1,"RSSI":72,"LinkCount":2,"Downtime":"0T00:00:09"}} loadave: type: num eval: sh...()['LoadAvg'] eval_trigger: .. power: type: str eval: sh...()['POWER'] eval_trigger: .. on_change: - sonoff.sonoff_b1.switch = value == "ON" ssid: type: str eval: sh...()['Wifi']['SSId'] eval_trigger: .. valid: type: bool name: SONOFF sendet noch eval: (value != '$$!!%%') eval_trigger: .. autotimer: 600 = $$!!%%
Michael
Kommentar
-
Hallo,
folgendes in der Konsole von tasmota und die Steckdose nutzt 1 / 0 statt ON / OFF.
Dann kannst Du das Hilfsitem sparen. :-)
Code:StateText1 0 StateText2 1
HTML-Code:https://github.com/arendst/Tasmota/wiki/Commands#how-to-use-commands
kla.bZuletzt geändert von klab; 18.11.2019, 13:28.
- Likes 1
Kommentar
-
Hallo,
@sisamiwe
Das kommt davon, wenn man die Dokumentation liest. Da steht On und Off. Dabei kann sie auch 1 und 0
klab und zwar auch ohne die zwei Kommandos!
Danke für den Hinweis.
Dennoch bleibe ich dabei, dass mein Vorschlag sinnvoll ist...
Zitat von Msinn Beitrag anzeigenBisher ist da noch gar nichts rumgekommen. Ich habe einige Punkte für das MQTT Plugin. Ich wollte das mit der Anpassung des Plugins für MQTT 5.0 machen. Allerdings zieht sich das Release des v5.0 kompatiblen paho-mqtt Packages.
Gruß,
Hendrik
Kommentar
-
Für das was Du hier ansprichst, muss nicht viel geändert werden. Die Liste dessen was für das MQTT Plugin ansteht ist aber in Gänze ziemlich lang und wie ich bereits schrieb, habe ich weder Lust noch Zeit das MQTT Plugin mehrfach anzufassen.
Die MQTT 5 fähige Version des paho-mqtt Packages war eigentlich schon vor rund einem halben Jahr erwartet worden. Bevor das nicht released ist, fange ich nicht mit dem Umbau an.
Der Umbau sieht vor, dass eigentliche MQTT Protokoll in den Core zu verlagern, so dass Plugins es nutzen können. Dann kann man entweder ein generisches MQTT Plugin nutzen (welches die Funktionalität des Bisherigen Plugins bereit stellt) oder ein Plugin schreiben, welches direkt auf das IoT Device zugeschnitten ist und MQTT einfach zur Kommunikation nutzen.Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
-
Hallo,
dann machen wir lieber hier weiter:
Zitat von Msinn Beitrag anzeigenWas ist das mqtt2 Plugin? Ich kenne nur mqtt und mqtt1.
Code:2020-04-18 18:13:48 DEBUG Main PluginWrapper __init__: Section mqtt, classname Mqtt2, classpath plugins.mqtt 2020-04-18 18:13:48 DEBUG Main Plugin 'Mqtt2': args = '{'plugin_name': "'Mqtt'"}' 2020-04-18 18:13:48 INFO Main Module http: Registering webinterface 'mqtt' of plugin 'mqtt' from pluginclass 'Mqtt2' instance '' 2020-04-18 18:13:48 INFO Main self._applications['mqtt'] = {'Mount': '/mqtt', 'Pluginclass': 'Mqtt2', 'Webifname': 'mqtt', 'Pluginname': 'mqtt', 'Instance': '', 'Conf': {'/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/mqtt/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.realm': 'shng_http_webif', 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x7f8d25cb6470>>}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}}, 'Description': 'Webinterface mqtt of plugin mqtt'} 2020-04-18 18:13:48 DEBUG Main Plugins: Loaded plugin 'mqtt' (class 'Mqtt2') v2.0.0: MQTT Plugin, welches das MQTT Module von SmartHomeNG zur Kommunikation nutzt. 2020-04-18 20:13:54 ERROR Haustechnik.Hintertuer.Schloss.Action_out Item Haustechnik.Hintertuer.Schloss.Action_out: problem running <bound method Mqtt2.update_item of <plugins.mqtt.Mqtt2 object at 0x7f8d00088dd8>>: 'Mqtt2' object has no attribute 'alive'
Das Modul habe ich so aber nicht genannt
Code:mqtt: module_name: mqtt broker_host: 192.168.177.3 broker_monitoring: true
Code:mqtt: plugin_name: Mqtt
Ich gehe mal davon aus, Du meinst mqtt.
Bist Du Dir sicher, dass Deine Installation eine saubere v1.7.x ist?
Der Fehler
Code:File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 214, in update_item if self.alive and caller != self.get_shortname():
Code:def run(self): """ Run method for the plugin """ self.logger.debug("Run method called") self.alive = True # start subscription to all topics self.start_subscriptions()
Versuchst Du von irgendwo her ein Update auf das Item zu machen, bevor die Initialisierung von SmartHomeNG abgeschlossen ist?
Aber wäre es nicht sinnvoll in init() self.alive auf False zu setzen?
Gruß,
Hendrik
Kommentar
-
Das könnte man andenken. Du kannst Das bei Dir ja mal machen. Ich würde das, falls es bei Dir hilft dann allerdings genereller angehen und für alle Plugins lösen (entweder in der SmartPlugin Klasse oder in lib.plugin)Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
-
Zitat von Msinn Beitrag anzeigenWas ist das mqtt2 Plugin? Ich kenne nur mqtt und mqtt1.
Mein erster Fehler war, das aufgrund der Implementierung von mqtt in den Core ich dachte es liefe jetzt ohne plugin. Weit gefehlt, die Einsicht kam über Nacht.
Dann hatte ich eine Fehlermeldung bzgl classname bei mqtt und milight. Milight musste nur Großgeschrieben werden, beim mqtt- plugin steht jedoch in der pugin.yaml der
"classname: Mqtt2"
in der etc/plugin.yaml steht jetzt
mqtt:
class_name: Mqtt2
class_path: plugins.mqtt
#host: '127.0.0.1'
und es läuft .......
Kommentar
-
Wenn Du den Hinweis im Thread zum Release und den verlinkten Blog Artikel zu MQTT gelesen hättest, hättest Du Dir die Nacht ersparen können.
Zum Zitat: Ja es gibt kein Plugin namens mqtt2 - oder jast Du unter plugins ein Verzeichnis dieses Namnes gefunden?
Btw.: Die Konfiguration über class_path und class_name ist veraltet. Du kannst einfach plugin_name nehmen. Für MQTT:
Code:mqtt: plugin_name: mqtt
Zuletzt geändert von Msinn; 24.04.2020, 23:02.Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
-
Zitat von henfri Beitrag anzeigenQ: Versuchst Du von irgendwo her ein Update auf das Item zu machen, bevor die Initialisierung von SmartHomeNG abgeschlossen ist?
A: Ich wüsste nicht wie. Das kann höchstens intern durch Items, die getriggert werden passieren. Bewusst/manuell mache ich das nicht.
Ein sehr spezieller Fall, da dies im späteren Verlauf (wenn die Init-Phase abgeschlossen wurde) nicht mehr gesehen habe.
Stört mich persönlich nicht, könnte jedoch für andere User verwirrend sein.
Msinn : Vielen Dank für die Updates auf 1.7
Kommentar
-
ich hoffe ihr nehmt mir die Frage nicht übel, aber wie gehe ich mit dem neuen MQTT im core um?
- warum gibt es weiterhin den /plugin/mqtt Ordner?
- muss ich wenn ich zigbee2mqtt laufen habe noch etwas anderes konfigurieren?
Problem: Die Items werden nicht geschrieben/aktualisiert, weder das hilfs_item mit der kompletten payload noch die 2 anderen.
Items hätte ich wie folgt konfiguriert:
Code:# zigbee.yaml test:[INDENT]hilfs_item:[/INDENT][INDENT=2]type: dict[/INDENT][INDENT=2]mqtt_topic_in: zigbee2mqtt/0x00158d0002f2f19d[/INDENT][INDENT=2]on_change:[/INDENT][INDENT=2]- ..wsd1_temp = value['temperature'][/INDENT][INDENT=2]- ..wsd1_feucht = value['humidity'][/INDENT][INDENT]wsd1_temp:[/INDENT][INDENT=2]type: str[/INDENT][INDENT]wsd1_feucht:[/INDENT][INDENT=2]type: str[/INDENT]
2020-05-06 22_08_11-Shngadmin.png
Verbindung zum MQTT broker steht:
Code:[smarthome@SmartHomeNG ~]$ sudo systemctl status mosquitto.service ● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-05-06 22:23:33 CEST; 1min 55s ago Docs: man:mosquitto.conf(5) man:mosquitto(8) Main PID: 603 (mosquitto) Tasks: 1 (limit: 4915) Memory: 1.3M CGroup: /system.slice/mosquitto.service └─603 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Mai 06 22:23:32 SmartHomeNG systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker... Mai 06 22:23:33 SmartHomeNG systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker. Mai 06 22:23:38 SmartHomeNG mosquitto[603]: New connection from 127.0.0.1 on port 1883. Mai 06 22:23:38 SmartHomeNG mosquitto[603]: New client connected from 127.0.0.1 as SmartHomeNG.MQTT-module (c1, k60).
Code:[smarthome@SmartHomeNG ~]$ sudo systemctl status zigbee2mqtt.service ● zigbee2mqtt.service - zigbee2mqtt Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2020-05-06 22:01:19 CEST; 30s ago Main PID: 12462 (npm) Tasks: 23 (limit: 4915) Memory: 41.1M CGroup: /system.slice/zigbee2mqtt.service ├─12462 npm ├─12473 sh -c node index.js └─12474 node index.js Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: 0x00158d0002f2f19d (0x00158d0002f2f19d): WSDCGQ11LM - Xiaomi Aqara temp Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:warn 2020-05-06 22:01:23: `permit_join` set to `true` in configuration.yaml. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:warn 2020-05-06 22:01:23: Allowing new devices to join. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:warn 2020-05-06 22:01:23: Set `permit_join` to `false` once you joined all devices. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: Zigbee: allowing new devices to join. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: Connecting to MQTT server at mqtt://localhost Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: Connected to MQTT server Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online' Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: MQTT publish: topic 'zigbee2mqtt/0x00158d0002f2f19d', payload '{"batter Mai 06 22:01:24 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:24: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1
Zuletzt geändert von jonsson; 06.05.2020, 21:27.
Kommentar
-
Zitat von jonsson Beitrag anzeigenich hoffe ihr nehmt mir die Frage nicht übel, aber wie gehe ich mit dem neuen MQTT im core um?
Zitat von Msinn Beitrag anzeigenWas ist beim Update zu beachten?
Die Unterstützung des MQTT Protokolls ist in den Core umgezogen. Dadurch kann das Protokoll auch aus Logiken und mehreren Plugins genutzt werden. Dadurch ändert sich die Konfiguration. Ausführliche Informationen zu den Änderungen und zur Konfiguration finden sich auf www.smarthomeNG.de
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
Kommentar