(FHEM) 00 MQTT.pm: Unterschied zwischen den Versionen

Aus TippvomTibb
Zur Navigation springen Zur Suche springen
Zeile 4: Zeile 4:
 
  Ein einzelnes MQTT-Gerät kann mehrere MQTT_DEVICE, MQTT_GENERIC_BRIDGE Clients und (veraltete) MQTT_BRIDGE Clients bedienen.  Jedes MQTT_DEVICE fungiert als Brücke zwischen einem Fhem-Gerät und mqtt.  
 
  Ein einzelnes MQTT-Gerät kann mehrere MQTT_DEVICE, MQTT_GENERIC_BRIDGE Clients und (veraltete) MQTT_BRIDGE Clients bedienen.  Jedes MQTT_DEVICE fungiert als Brücke zwischen einem Fhem-Gerät und mqtt.  
 
  Hinweis: Dieses Modul basiert auf Net::MQTT, das zuerst von CPAN installiert werden muss.
 
  Hinweis: Dieses Modul basiert auf Net::MQTT, das zuerst von CPAN installiert werden muss.
 +
 +
Das Modul MQTT fungiert als Verbindung zwischen FHEM und einem MQTT Broker (Server) und repräsentiert ein MQTT Gateway. Die durch die Module MQTT_DEVICE oder (veraltet!) MQTT_BRIDGE (In neuen Installationen soll das Modul MQTT_GENERIC_BRIDGE bevorzugt werden.) repräsentierten Client-Geräte sind gesondert anzulegen.
 +
 +
Nebenbemerkung: Genau wie in der Netzwerktechnik gehen scheinbar hier die Begriffe Gateway und Bridge munter durcheinander. Ein Gateway liegt im ISO/OSI und im TCP/IP auf verschiedenen Schichten!
 +
  
 
'''Define'''
 
'''Define'''

Version vom 7. August 2022, 22:39 Uhr

00_MQTT.pm

Zurueck Uebersicht

Ein einzelnes MQTT-Gerät kann mehrere MQTT_DEVICE, MQTT_GENERIC_BRIDGE Clients und (veraltete) MQTT_BRIDGE Clients bedienen.  Jedes MQTT_DEVICE fungiert als Brücke zwischen einem Fhem-Gerät und mqtt. 
Hinweis: Dieses Modul basiert auf Net::MQTT, das zuerst von CPAN installiert werden muss.
Das Modul MQTT fungiert als Verbindung zwischen FHEM und einem MQTT Broker (Server) und repräsentiert ein MQTT Gateway. Die durch die Module MQTT_DEVICE oder (veraltet!) MQTT_BRIDGE (In neuen Installationen soll das Modul MQTT_GENERIC_BRIDGE bevorzugt werden.) repräsentierten Client-Geräte sind gesondert anzulegen. 

Nebenbemerkung: Genau wie in der Netzwerktechnik gehen scheinbar hier die Begriffe Gateway und Bridge munter durcheinander. Ein Gateway liegt im ISO/OSI und im TCP/IP auf verschiedenen Schichten!


Define

define <name> MQTT <ip:port> [<username>] [<password>]

Set

set <name> connect
set <name> disconnect
set <name> publish [qos:?] [retain:?] <topic> <message>

Get

version (steht nur im Programmcode, tauscht sonst nirgends auf)

Readings

  

Attributes

keep-alive
attr <name> last-will [qos:?] [retain:?] <topic> <message>
attr <name> client-id client id
on-connect
on-disconnect
on-timeout
privacy 0|1

Erlaeuterungen

Clients: MQTT_DEVICE und MQTT_BRIDGE

Abhaengigkeiten: DevIo.pm

Wenn eine 'Cannot load module MQTT' erscheint fhelt wohl das 'Net::MQTT'

cpan install Net::MQTT 

FHEM#>restart

Fehlermeldung:

2022.08.07 20:02:53.913 1: reload: Error:Modul 00_MQTT deactivated:
 Can't locate Net/MQTT/Constants.pm in @INC (you may need to install the Net::MQTT::Constants module) (@INC contains: ./lib ./FHEM . /usr/lib/perl5/site_perl/5.26.1/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.26.1 /usr/lib/perl5/vendor_perl/5.26.1/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.26.1 /usr/lib/perl5/5.26.1/x86_64-linux-thread-multi /usr/lib/perl5/5.26.1 /usr/lib/perl5/site_perl ./FHEM/lib) at ./FHEM/00_MQTT.pm line 42.
BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 42.

2022.08.07 20:02:53.913 0: Can't locate Net/MQTT/Constants.pm in @INC (you may need to install the Net::MQTT::Constants module) (@INC contains: ./lib ./FHEM . /usr/lib/perl5/site_perl/5.26.1/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.26.1 /usr/lib/perl5/vendor_perl/5.26.1/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.26.1 /usr/lib/perl5/5.26.1/x86_64-linux-thread-multi /usr/lib/perl5/5.26.1 /usr/lib/perl5/site_perl ./FHEM/lib) at ./FHEM/00_MQTT.pm line 42.
BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 42.

Loesung: Leider habe ich noch keinen Hinweis dazu erhalten welche der 3 Net::MQTT Libraries die richtige ist.

cpan[5]> i /Net-MQTT/
Distribution    BEANZ/Net-MQTT-1.163170.tar.gz
Distribution    JUERD/Net-MQTT-Simple-1.26.tar.gz
Distribution    KRENZKE/Net-MQTT-Simple-Auth-0.002.tar.gz
3 items found
cpan[6]> install BEANZ/Net-MQTT-1.163170.tar.gz

Nach dem Installieren war die Definition des Beispiels (s. u.) erfolgreich.

Beispiele

Define MQTT.png
Define MQTT Attribute.png


define 00_MQTT_Test MQTT

Erstmal kam eine Fehlermeldung. Loesung siehe oben.

Beim zweiten Anlauf war die Definition erfolgreich.


Die 'Raw definition' sieht so aus:

defmod 00_MQTT_Test MQTT
setstate 00_MQTT_Test disconnected
setstate 00_MQTT_Test 2022-08-07 21:08:16 state disconnected

Anwendungen