Autor Thema: Neue Module: MQTT2_SERVER und MQTT2_DEVICE  (Gelesen 2359 mal)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19147
Neue Module: MQTT2_SERVER und MQTT2_DEVICE
« am: 10 August 2018, 13:55:08 »
Ziel: Anbindung von MQTT Geraeten an FHEM zu vereinfachen.

MQTT2_SERVER: eine "cleanroom" Implementierung eines MQTT Servers in FHEM, ersetzt (mit weniger Features) einen externen Server wie mosquitto.
MQTT2_DEVICE: Geraeterepresentation von angeschlossenen Geraeten.

Beispiel (Anbindung eines Sonoff TH10 mit Tasmota Firmware):
define m2s MQTT2_SERVER 1883 global

define sonoff_th10 MQTT2_DEVICE
attr sonoff_th10 readingList tele/sonoff/S.* { MQTT2_JSON($EVENT) }
attr sonoff_th10 setList\
   on tasmota/sonoff/cmnd/Power1 on\
   off tasmota/sonoff/cmnd/Power1 off

Zu meinem bedauern konnte ich MQTT_DEVICE nicht verwenden, da es viel zu stark mit den externen Bibliotheken und den anderen MQTT Modulen zusammenhaengt.
Ich habe einige "Labortests" durchgefuehrt, aber mit wenig "echten" Geraeten getestet, am Anfang ist also mit Problemen zu rechnen. Probleme/Feedback/etc bitte im MQTT Bereich des Forums kundtun.


Nebeneffekte der Implementierung:
- Dispatch in fhem.pl hat einen zusaetzlichen optionalen Parameter ($nounknown), falls gesetzt, werden nicht automatisch Geraete angelegt.
- die allowed Anbindung ist generischer geworden: ein Modul signalisiert mit gesetztem CanAuthenticate, dass es kompatibel ist (MQTT2_SERVER ist kompatibel), was eine Warnung erzeugt, falls kein Passwort gesetzt ist. Der Wert 1 veranlasst FHEMWEB passwort vorzuschlagen (telnet),  bei 2 wird basicAuth vorgeschlagen (FHEMWEB und MQTT2_SERVER).

Nachtrag:
Inzwischen hat MQTT2_SERVER ein autocreate Attribut bekommen, damit sollte das Anlegen einfacher gehen. D.h. erst Server anlegen:
define m2s MQTT2_SERVER 1883 global
attr m2s autocreate
Danach MQTT Endgeraet fuer diesen Host+Port konfigurieren. Die MQTT2_DEVICE Instanzen werden in FHEM damit automatisch angelegt, und auch das readingList Attribut wird automatisch ergaenzt beim ersten Eintreffen eines Nachrichtentyps. Man muss nur noch setList per Hand setzen.
« Letzte Änderung: 04 Oktober 2018, 09:42:06 von rudolfkoenig »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15081
  • s/fhem\.cfg/configDB/g
Antw:Neue Module: MQTT2_SERVER und MQTT2_DEVICE
« Antwort #1 am: 10 August 2018, 18:02:29 »
Funktioniert erstmal nicht.

2018.08.10 17:53:08 1: reload: Error:Modul 00_MQTT2_SERVER deactivated:
 Experimental keys on scalar is now forbidden at ./FHEM/00_MQTT2_SERVER.pm line 75.

2018.08.10 17:53:08 0: Experimental keys on scalar is now forbidden at ./FHEM/00_MQTT2_SERVER.pm line 75.

patch gibts hier: https://forum.fhem.de/index.php/topic,90145.0.html



Und auf der ganzen Welt, heißt die zentrale MQTT Instanz "Broker" und nicht "Server"...
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19147
Antw:Neue Module: MQTT2_SERVER und MQTT2_DEVICE
« Antwort #2 am: 10 August 2018, 18:13:52 »
Zitat
Funktioniert erstmal nicht.
Haengt vom Perl version wohl ab, 5.18 meldet keine Fehler, 5.26 mag tatsaechlich nicht.

Zitat
patch gibts hier: https://forum.fhem.de/index.php/topic,90145.0.html
Danke, habs eingecheckt.

Zitat
Und auf der ganzen Welt, heißt die zentrale MQTT Instanz "Broker" und nicht "Server"...
In der aktuellen spec (http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) gibt es keinen broker mehr, nur noch server.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15081
  • s/fhem\.cfg/configDB/g
Antw:Neue Module: MQTT2_SERVER und MQTT2_DEVICE
« Antwort #3 am: 10 August 2018, 20:27:01 »
Alles in allem: Gute Arbeit! Danke!

Das wird in der Mehrzahl der Fälle, in denen MQTT innerhalb einer einzelnen FHEM Installation verwendet werden soll, völlig ausreichen.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr
Gefällt mir Gefällt mir x 1 Zustimmung Zustimmung x 1 Liste anzeigen

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16040
Antw:Neue Module: MQTT2_SERVER und MQTT2_DEVICE
« Antwort #4 am: 10 August 2018, 20:31:32 »
Alles in allem: Gute Arbeit! Danke!

Das wird in der Mehrzahl der Fälle, in denen MQTT innerhalb einer einzelnen FHEM Installation verwendet werden soll, völlig ausreichen.

Ich gebe Udo da Recht. Wirklich gute Arbeit. Danke Rudi.
MQTT ist/war unter FHEM bisher Kraut und Rüben
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15081
  • s/fhem\.cfg/configDB/g
Antw:Neue Module: MQTT2_SERVER und MQTT2_DEVICE
« Antwort #5 am: 10 August 2018, 20:38:28 »
MQTT ist/war unter FHEM bisher Kraut und Rüben

Nein. Aber es war nicht komplett in FHEM lösbar, ohne externe Ressourcen zu brauchen.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr

 

decade-submarginal