FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: maruro am 30 November 2018, 13:01:15

Titel: MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 30 November 2018, 13:01:15
Hi zusammen,

ich möchte FHEM gerne auf die Sprachschule schicken und FHEm MQTT beibringen. Ich glaube ich hab nun alles drüber gelesen, 3 Videokurse durchgemacht und ich flipp gleich aus.

Aalso:


1. Mein Orange Pi läut unter ARMBIAN 5.60 stable Debian GNU/Linux 9 (stretch) 4.14.70-sunxi.
2. Fhem hab ich installiert, /etc/init.d/fhem fhem status gibt aus: "fhem is running
3. sudo service mosquitto status sagt, dass der Broker auf meinem Orange Pi ebenfalls läuft, denn er gibt aus:

mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
   Loaded: loaded (/etc/init.d/mosquitto; generated; vendor preset: enabled)
   Active: active (running) since Fri 2018-11-30 10:25:16 CET; 2h 15min ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/mosquitto.service
           └─27715 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Nov 30 10:25:16 SAM systemd[1]: Starting LSB: mosquitto MQTT v3.1 message broker
Nov 30 10:25:16 SAM mosquitto[27705]: Starting network daemon:: mosquitto.
Nov 30 10:25:16 SAM systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.


4. SIMPLE und Constants hab ich davor installiert.
5. In FHEM hab ich ein mosquitto device angelegt über "define mosquitto MQTT MEINEIP:8083"
     Status: "opened"

6. Ich habe ebenfalls einen TestSchalter angelegt vom DeviceType MQTT_DEVICE, hier die Infos:

Internals:
   CFGFN     
   IODev      Mosquitto
   NAME       TestSchalter
   NR         734
   STATE      off
   TYPE       MQTT_DEVICE
   READINGS:
     2018-11-30 11:24:46   state           off
     2018-11-30 11:24:46   transmission-state outgoing publish sent
   publishSets:
     :
       topic      /BAS/TestSchalter
       values:
         on
         off
         toggle
   sets:
     off       
     on         
     toggle     
   subscribe:
   subscribeExpr:
   subscribeQos:
Attributes:
   IODev      Mosquitto
   publishSet on off toggle /BAS/TestSchalter
   room       MQTT
   webCmd     on:off:toogle

<-- auch DAS scheint erfolgreich gewesen zu sein

WAS MICH ABER WAHNSINNIG MACHT:

Ich kann mich mit MQTT.fx einfach um´s Verrecken nicht damit verbinden.

Ich gebe dort die IP-Adresse ein, auf der auch FHEM liegt 88.66.xx.xx (oder sollte ich da die IP-Adresse meines ORANGE PI´s eingeben, also eine 192.xx.x.xxx?)

Hat jemand irgendeine Idee? :-(
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: Beta-User am 30 November 2018, 13:08:46
Wenn sich MQTT.fx verhält wie mosquitto_sub, sollte er auf die mosuitto-IP zeigen und nicht auf die FHEM-IP (und ggf. den passenden Port, idR. 1883).

Im Übrigen wäre mein Tip, nicht in vollem Umfang der Video-Anleitung Folge zu leisten: Damals gab es weder MQTT2_CLIENT (bei Verwendung eines externen Servers) noch MQTT2_SERVER (FHEM direkt als Server)...
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 30 November 2018, 13:10:34
ps. Unter dem Mosquitto Device in FHEM finde ich unter readings bei connection ganz lange "connecting" --> "timed-out".
D.h. Das Device State ist "opened", aber beim connecten scheint es probleme zu geben (oder?) 
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 30 November 2018, 13:12:02
Zitat von: Beta-User am 30 November 2018, 13:08:46
Wenn sich MQTT.fx verhält wie mosquitto_sub, sollte er auf die mosuitto-IP zeigen und nicht auf die FHEM-IP (und ggf. den passenden Port, idR. 1883).

Im Übrigen wäre mein Tip, nicht in vollem Umfang der Video-Anleitung Folge zu leisten: Damals gab es weder MQTT2_CLIENT (bei Verwendung eines externen Servers) noch MQTT2_SERVER (FHEM direkt als Server)...

Wie finde ich denn die Mosquitto-IP heraus?
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: Beta-User am 30 November 2018, 13:16:53
mosquitto-IP meint die IP des Rechners, auf dem mosquitto installiert ist (scheint die Orange zu sein...).

Zu MQTT kann ich sonst nicht viel sagen, habe alles (will heißen meine paar Geräte) jetzt auf die Zusammenarbeit mit MQTT2_SERVER umgestellt ;) . Wenn da timeouts sind, kann das auf Probleme hindeuten. Würde erst mal die mosquitto-Funktionalität mit anderen Clients checken (also Geräten, die direkt MQTT sprechen; die sollten in MQTT.fx zu sehen sein).

Klappt das, ist dann FHEM als Client an der Reihe...
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 30 November 2018, 14:22:47
Update:

ich habe mosquitto noch ma neu angelegt über define mosquitto MQTT IPvomOrangePi:1883 und bekomme nun connection active & state open

aber ändert nix, "MqttException"...
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: Beta-User am 30 November 2018, 14:32:12
a) Läuft denn der mosquitto-Dienst sauber auf der Orange und kannst du da Geräte mit MQTT.fx bei Kommunizieren mit dem Dienst zusehen?
b) Warum nimmst du nicht MQTT2_CLIENT statt MQTT?
Also:delete mosquitto
define mosquitto2fhemIO MQTT2_CLIENT <IPvomOrangePi>:1883
attr mosquitto2fhemIO autocreate

(und ggf. attr+set für User+Passwort)

Dann entweder ein MQTT2_DEVICE als Testdevice manuell anlegen oder die MQTT_GENERIC_BRIDGE verwenden, wenn Daten aus FHEM raus an den mosquitto sollen.

Und sei so nett und nutze zukünftig Code-Tags, das ist einfacher zu lesen...

/EDIT: Code bereinigt
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 30 November 2018, 14:33:51
Noch n Update: Ich bin aktuell nicht im selben Netzwerk wie der OrangePI sondern in nem ganz anderen circa 300km entfernt. Ich verbinde mich nur über Putty mit dem OrangePi um alles mögliche damit anzustellen.

Kann das Issue mit MQTT.fx damit zusammenhängen, dass ich nicht aus dem lokalen Netzwerk heraus aufrufe?
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 30 November 2018, 14:38:25
Zitat von: Beta-User am 30 November 2018, 14:32:12
a) Läuft denn der mosquitto-Dienst sauber auf der Orange und kannst du da Geräte mit MQTT.fx bei Kommunizieren mit dem Dienst zusehen?

ja, bzw. ich hatte über den Befehl sudo service mosquitto status in meinem ersten Post ja das Ergebnis gepostet. Gibt das keine Aussage über den Dienst an sich & wenn nein, wo / wie kann ich den Dienst detaillierter prüfen?

Zitat
b) Warum nimmst du nicht MQTT2_CLIENT statt MQTT?
Also:delete mosquittodefine mosquitto2fhemIO <IPvomOrangePi>:1883
attr mosquitto2fhemIO autocreate

(und ggf. attr+set für User+Passwort)

Dann entweder ein MQTT2_DEVICE als Testdevice manuell anlegen oder die MQTT_GENERIC_BRIDGE verwenden, wenn Daten aus FHEM raus an den mosquitto sollen.


weil das aktuell noch für mich aussieht wie böhmische Dörfer aber ich höre raus & lese ja in verschiedenen Threads, dass das Wohl der Weg ist, den ich gehen muss...
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 30 November 2018, 15:00:43
@Beta-Teilchen:

Was muss ich tun, um MQTT2 zu installieren?

Liege ich richtig, dass ich

1. MQTT2_Server installieren muss define <name> MQTT2_SERVER <tcp-portnr> [global|IP]
2. autocreate = 1 setzen muss
3. MQTT2_Client installieren muss

oder wie ist da die richtige Abfolge + Befehl?

Ich hab jetzt 3 Threads dazu gelesen und nirgendwo finde ich eine Schritt-für-Schritt Abfolge. Vllt. kann man das ja noch irgendwo ergänzen (lassen?)
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: rudolfkoenig am 30 November 2018, 16:11:29
ZitatIch hab jetzt 3 Threads dazu gelesen und nirgendwo finde ich eine Schritt-für-Schritt Abfolge.
Eine Beschreibung gibt es immer wieder, aber jenachdem, was die Leute wollen, ist sie unterschiedlich:

1. Fuer die "ich will es automatisch haben" Fraktion:
MQTT2_SERVER definieren und autocreate setzen
In allen MQTT Geraeten den FHEM-MQTT-Server konfigurieren (Host+Port, evtl. topic)
Fuer jedes MQTT-Geraet wird automatisch eine MQTT2_DEVICE Instanz angelegt, sobald dieses Daten sendet, und alle empfangenen Daten werden automatisch zu Reading/Event gewandelt
Es muss manuell bestimmt werden, welche Befehle man versenden will, fuer etliche Geraetetypen (wie Tasmota/Hue-Lampe) kann man das per "set XX attrTemplate YYY" per Auswahlliste setzen.

2. Fuer die "ich will mosquito nutzen / ich will MQTT zum Verbinden von HA-Systemen nutzen" Fraktion:
MQTT2_CLIENT definieren, das ist die FHEM-Verbindung zu mosquitto, und Nachfolger des alten MQTT FHEM Moduls.
Autocreate ist hier nur begrenzt funktionsfaehig, da alles Empfangene in einem MQTT2_DEVICE angelegt wird, d.h. man muss manuell weitere MQTT2_DEVICE Instanzen anlegen, wo man readingsList konfiguriert. setList/attrTemplate ist wie oben manuell.  Alternativ zu den manuell angelegten MQTT2_DEVICE Instanzen kann man MQTT_GENERIC_BRIDGE verwenden, der beliebige FHEM-Geraete (dummy/FS20/etc) MQTT-faehig macht, allerdings muss man hier beide Richtungen (Empfangen/Senden) manuell konfigurieren.

Das ist nur als Wegweiser zu verstehen, da etliche nicht erwaehnte Kombinationen moeglich sind.
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: maruro am 01 Dezember 2018, 08:15:18
Hi rudolf,

Danke für die Ausführungen. Ich bin leider noch Anfänger im Bereich der sw Entwicklung und versuche daher deine Worte in Befehle umzumünzen:

(Ich will mosquitto mit mqtt2client versuchen).

Was muss ich denn tun um mqtt2 Client zu installieren?

Kn deiner modulvorstellung finde ich define mosquitto mqtt2_client localhost:1883.
Damit installiere ich aber keine Pakete auf Debian / Perl - wie starte ich denn richtig?
Titel: Antw:MQTT I FHEM --> Durchdrehgefahr
Beitrag von: Beta-User am 01 Dezember 2018, 10:26:40
MQTT2_CLIENT ist wie vieles andere auch ein "Modul" und wird einfach durch das "define" aktiviert (aktuelles FHEM vorausgesetzt). Steht in der commandref (da sind in der Regel auch Perl-Abhängigkeiten erwähnt, die es hier nicht gibt; zum einzelnen Modul einfach aufzurufen mit "help mqtt2_client" id Kommandozeile).

Du solltest im Wiki den Quick-Start lesen (einschl. des einen oder anderen links da und evtl. diverses anderes, das als Einstiegslektüre z.B. im Anfängerbereich verfügbar ist)...

Viel Spaß beim Einlesen,

Beta-User