MQTT und Homeassistant

Die Verbindung zum Smart Home und Internet der Dinge (IoT)

Moderator: Ulrich

Solario
Beiträge: 6
Registriert: So 6. Okt 2024, 11:41

MQTT und Homeassistant

Beitrag von Solario »

Hallo zusammen,

ich bin begeisterter Solaranzeige-Nutzer und sehr dankbar für das Tool!

Nun bin ich aber auf eine Problematik gestoßen, welche mich verzweifeln lässt: Ich möchte die Daten meines Huawei Sun 2000 Wechselrichters auch in Homeassistant für diverse Automationen nutzen. Bekannterweise kann man aber leider nur ein System mit dem Wechselrichter per Modbus verbinden und das ist bei mir die Solaranzeige.

Mein erster Versuch, auch mit Homeassistant parallel eine Verbindung aufzubauen via Modbus-Proxy ist gescheitert, das wollte einfach nicht funktionieren.

Nun die zweite Lösung: Daten via MQTT Publish an eine Homeassistant MQTT-Broker senden. Leider funktioniert auch das bisher nicht, obwohl ich wahrscheinlich nicht mehr weit weg bin von einer Lösung, denn MQTT-Daten, welche ich manuell vom Solaranezeige Raspi an den Homeassistant-Broker sende, kommen unmittelbar und korrekt an:

Code: Alles auswählen

mosquitto_pub -h [meine HA IP] -p 1883 -u [mein HA MQTT User] -P [HA Passwort] -t test/topic -m hello
Eine Verbindung besteht also und die Datenübertragung ist möglich.

Allerdings sehe ich in HA keinerlei Daten der Solaranzeige. Diese sollten ja im topic solaranzeige/box1 erscheinen, das topic taucht aber nicht auf.

In der user.config.php habe ich folgende Einstellung für MQTT vorgenommen:

Code: Alles auswählen

$MQTT = true;
$MQTTBroker = "[meine HA IP]";
$MQTTPort = 1883;
$MQTTBenutzer = "[mein HA User]";
$MQTTKennwort = "[HA Passwort]";
$MQTTSSL = false;
$MQTTKeepAlive = 60;
$MQTTGeraet = "PI";
Ich habe das Gerät in "PI" umbenannt, aber auch mit "box1" funktioniert es nicht.

In der solaranzeige.log sieht eigentlich alles ok aus:

Code: Alles auswählen

08.10. 20:10:00 |----------------   Start  huawei_LAN.php  ----------------------------- 
08.10. 20:10:00    -Huawei: [meine Wechselrichter IP] Port: 502 GeräteID: 1
08.10. 20:10:03 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
08.10. 20:10:06    -Wechselrichter-Daten: (00010000)
08.10. 20:10:08    -Batterie-Daten      : (00000000)
08.10. 20:10:08    -MQTT Daten zum [ [meine HA IP] ] senden.
08.10. 20:10:08    -Alle 10 Minuten werden die Statistikdaten übertragen.
08.10. 20:10:08 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
08.10. 20:10:09 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: [meine HA IP] Port: 1883
08.10. 20:10:34 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
08.10. 20:10:38    -Wechselrichter-Daten: (00010000)
08.10. 20:10:41    -Batterie-Daten      : (00000000)
08.10. 20:10:41    -MQTT Daten zum [ [meine HA IP] ] senden.
08.10. 20:10:41    -Alle 10 Minuten werden die Statistikdaten übertragen.
08.10. 20:10:41 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
08.10. 20:10:42 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: [meine HA IP] Port: 1883
08.10. 20:10:56    -OK. Datenübertragung erfolgreich.
08.10. 20:10:56 |----------------   Stop   huawei_LAN.php    --------------------------- 
08.10. 20:11:01 |----------------   Start  huawei_LAN.php  ----------------------------- 
08.10. 20:11:01    -Huawei: [meine Wechselrichter IP] Port: 502 GeräteID: 1
08.10. 20:11:04 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
08.10. 20:11:07    -Wechselrichter-Daten: (00010000)
08.10. 20:11:09    -Batterie-Daten      : (00000000)
08.10. 20:11:09    -MQTT Daten zum [ [meine HA IP] ] senden.
08.10. 20:11:09 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
08.10. 20:11:09 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: [meine HA IP] Port: 1883
08.10. 20:11:35 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
08.10. 20:11:40    -Wechselrichter-Daten: (00010000)
08.10. 20:11:42    -Batterie-Daten      : (00000000)
08.10. 20:11:42    -MQTT Daten zum [ [meine HA IP] ] senden.
08.10. 20:11:43 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
08.10. 20:11:43 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: [meine HA IP] Port: 1883
08.10. 20:11:57    -OK. Datenübertragung erfolgreich.
08.10. 20:11:57 |----------------   Stop   huawei_LAN.php    --------------------------- 
08.10. 20:12:01 |----------------   Start  huawei_LAN.php  ----------------------------- 
08.10. 20:12:01    -Huawei: [meine Wechselrichter IP] Port: 502 GeräteID: 1
08.10. 20:12:04 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
08.10. 20:12:06    -Wechselrichter-Daten: (00010000)
08.10. 20:12:09    -Batterie-Daten      : (00000000)
08.10. 20:12:09    -MQTT Daten zum [ [meine HA IP] ] senden.
08.10. 20:12:09 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
08.10. 20:12:09 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: [meine HA IP] Port: 1883
08.10. 20:12:36 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
08.10. 20:12:38    -Wechselrichter-Daten: (00010000)
08.10. 20:12:42    -Batterie-Daten      : (00000000)
08.10. 20:12:42    -MQTT Daten zum [ [meine HA IP] ] senden.
08.10. 20:12:42 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
08.10. 20:12:43 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: [meine HA IP] Port: 1883
08.10. 20:12:57    -OK. Datenübertragung erfolgreich.
08.10. 20:12:57 |----------------   Stop   huawei_LAN.php    --------------------------- 
In der php.log kann ich keine Meldungen bzgl. Mosquitto oder MQTT finden.

Hat vielleicht Jemand einen Hinweis, wo ich noch suchen könnte? Es sieht für mich so aus, als dass das Skript, welches die Daten sammelt und an den Broker sendet, einen leeren Inhalt als topic und message erzeugt, da das manuelle Senden einwandfrei funktioniert. Habe ich evtl. eine Einstellung vergessen?

Danke und Grüße
Markus

Benutzeravatar
Ulrich
Administrator
Beiträge: 6320
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 159 Mal
Danksagung erhalten: 933 Mal

Re: MQTT und Homeassistant

Beitrag von Ulrich »

welche Daten werfen angezeigt, wenn man folgendes eingibt:

mosquitto_sub -h [meine HA IP] -p 1883 -u [mein HA MQTT User] -P [HA Passwort] -v -t +/#
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

Solario
Beiträge: 6
Registriert: So 6. Okt 2024, 11:41

Re: MQTT und Homeassistant

Beitrag von Solario »

Hallo,

danke fürs Freigeben!
Ulrich hat geschrieben:
Mi 9. Okt 2024, 08:28
welche Daten werfen angezeigt, wenn man folgendes eingibt:

mosquitto_sub -h [meine HA IP] -p 1883 -u [mein HA MQTT User] -P [HA Passwort] -v -t +/#
Es wird nichts angezeigt, weder auf der einen, noch auf der anderen Seite.

Wenn ich das richtig verstehe, werden doch die zu sendenden Topics in der Datei "pipe" zwischengespeichert, richtig? Diese ist aber immer leer (0 Bytes).

Grüße
Markus

Benutzeravatar
Ulrich
Administrator
Beiträge: 6320
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 159 Mal
Danksagung erhalten: 933 Mal

Re: MQTT und Homeassistant

Beitrag von Ulrich »

Hat das Unterverzeichnis pipe die richtigen Owner?

/var/www/pipe => www-data:www-data
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

Solario
Beiträge: 6
Registriert: So 6. Okt 2024, 11:41

Re: MQTT und Homeassistant

Beitrag von Solario »

Hallo,

oh, das sieht mir nicht danach aus, oder? Keiner scheint Schreibrechte zu haben (bis auf den Besitzer):

Code: Alles auswählen

prw-r--r-- 1 root root 0  9. Okt 13:10 pipe
Welcher User braucht denn welche Rechte? Dann kann ich die zuteilen. Das könnte natürlich das Problem sein ...

Grüße
Markus

Solario
Beiträge: 6
Registriert: So 6. Okt 2024, 11:41

Re: MQTT und Homeassistant

Beitrag von Solario »

Nachtrag:

Ich habe jetzt einfach mal allen Usern Lese-/Schreibrechte gegeben, leider keine Verändung:

Code: Alles auswählen

prw-rw-rw- 1 root root 0  9. Okt 13:32 pipe
Auch habe ich den Log-Level mal auf 10 gesetzt, hier die letzten Einträge:

Code: Alles auswählen

09.10. 13:30:02 |----------------   Start  huawei_LAN.php  ----------------------------- 
09.10. 13:30:02    -Huawei: 192.168.178.144 Port: 502 GeräteID: 1
09.10. 13:30:04 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 13:30:07    -Wechselrichter-Daten: (00060000)
09.10. 13:30:09    -Batterie-Daten      : (00000000)
09.10. 13:30:09    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 13:30:09    -Alle 10 Minuten werden die Statistikdaten übertragen.
09.10. 13:30:10 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 13:30:10 MQT-PIPE ausgelesen und versendet.
09.10. 13:30:10 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.178.32 Port: 1883
09.10. 13:30:36 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 13:30:40    -Wechselrichter-Daten: (00060000)
09.10. 13:30:42    -Batterie-Daten      : (00000000)
09.10. 13:30:42    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 13:30:42    -Alle 10 Minuten werden die Statistikdaten übertragen.
09.10. 13:30:43 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 13:30:43 MQT-PIPE ausgelesen und versendet.
09.10. 13:30:43 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.178.32 Port: 1883
09.10. 13:30:58    -OK. Datenübertragung erfolgreich.
09.10. 13:30:58 |----------------   Stop   huawei_LAN.php    --------------------------- 
09.10. 13:31:00 MQT-Ende der Verarbeitung. (MQTT)
09.10. 13:31:00 MQT-MQTT Ende: array (
  'MQTTConnectReturnCode' => 0,
  'MQTTConnectReturnText' => '0-CONX-OK|',
  'MQTTSubscribeReturnText' => 'SUB-OK|',
  'MQTTDisconnectReturnText' => 'Disconnected',
)
09.10. 13:31:00 MQT-0-CONX-OK|
09.10. 13:31:01 |----------------   Start  huawei_LAN.php  ----------------------------- 
09.10. 13:31:01    -Huawei: 192.168.178.144 Port: 502 GeräteID: 1
09.10. 13:31:04 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 13:31:07    -Wechselrichter-Daten: (00060000)
09.10. 13:31:10    -Batterie-Daten      : (00000000)
09.10. 13:31:10    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 13:31:11 MQT-PIPE ausgelesen und versendet.
09.10. 13:31:11 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.178.32 Port: 1883
09.10. 13:31:11 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 13:31:39 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 13:31:41    -Wechselrichter-Daten: (00060000)
09.10. 13:31:45    -Batterie-Daten      : (00000000)
09.10. 13:31:45    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 13:31:45 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 13:31:45 MQT-PIPE ausgelesen und versendet.
09.10. 13:31:45 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.178.32 Port: 1883
09.10. 13:31:57    -OK. Datenübertragung erfolgreich.
09.10. 13:31:57 |----------------   Stop   huawei_LAN.php    --------------------------- 
09.10. 13:31:58 MQT-Ende der Verarbeitung. (MQTT)
09.10. 13:31:58 MQT-MQTT Ende: array (
  'MQTTConnectReturnCode' => 0,
  'MQTTConnectReturnText' => '0-CONX-OK|',
  'MQTTSubscribeReturnText' => 'SUB-OK|',
  'MQTTDisconnectReturnText' => 'Disconnected',
)
09.10. 13:32:01 MQT-0-CONX-OK|
09.10. 13:32:01 |----------------   Start  huawei_LAN.php  ----------------------------- 
09.10. 13:32:01    -Huawei: 192.168.178.144 Port: 502 GeräteID: 1
09.10. 13:32:05 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 13:32:08    -Wechselrichter-Daten: (00060000)
09.10. 13:32:10    -Batterie-Daten      : (00000000)
09.10. 13:32:10    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 13:32:10 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 13:32:11 MQT-PIPE ausgelesen und versendet.
09.10. 13:32:11 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.178.32 Port: 1883
09.10. 13:32:35 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 13:32:39    -Wechselrichter-Daten: (00060000)
09.10. 13:32:43    -Batterie-Daten      : (00000000)
09.10. 13:32:43    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 13:32:43 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 13:32:44 MQT-PIPE ausgelesen und versendet.
09.10. 13:32:44 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.178.32 Port: 1883
09.10. 13:32:57    -OK. Datenübertragung erfolgreich.
09.10. 13:32:57 |----------------   Stop   huawei_LAN.php    --------------------------- 
09.10. 13:32:59 MQT-Ende der Verarbeitung. (MQTT)
09.10. 13:32:59 MQT-MQTT Ende: array (
  'MQTTConnectReturnCode' => 0,
  'MQTTConnectReturnText' => '0-CONX-OK|',
  'MQTTSubscribeReturnText' => 'SUB-OK|',
  'MQTTDisconnectReturnText' => 'Disconnected',
)
Ich kann auch am Timestamp für die Datei "pipe" sehen, dass sie regelmäßig geschrieben wird, nur leider mit Null-Inhalt.

Solario
Beiträge: 6
Registriert: So 6. Okt 2024, 11:41

Re: MQTT und Homeassistant

Beitrag von Solario »

Hallo nochmal,

ich bin ein Stückchen weiter. Ich habe ein 2 Tage altes Backup zurück gespielt, welches ich vor der Modbus und MQTT Bastelei angelegt hatte. Wenn ich nun

Code: Alles auswählen

mosquitto_sub -h [meine HA IP] -p 1883 -u [mein HA MQTT User] -P [HA Passwort] -v -t +/# 
eingebe, erscheinen nach kurzer Zeit die ganzen Topics.

In der user.config.php habe ich auch wieder MQTT aktiviert und die entsprechenden Werte gesetzt, pipe bleibt aber immer noch leer und somit kommt auch nichts in HA an. pipe wird allerdings regelmäßig geschrieben, zu sehen am Datum der Datei. Berechtigungen habe ich auch wieder auf -rw für alle Benutzer gesetzt.

Für einen weiteren Test habe ich dann mal die datei "pipe" gelöscht. Sie wurde dann auch wieder neu angelegt, allerdings weiterhin ohne Inhalt. Hier der entsprechende Log-Eintrag:

Code: Alles auswählen

09.10. 20:44:02 MQT-Pipe exestiert nicht. Nur Info, kein Fehler...Exit.
09.10. 20:44:02 |----------------   Start  huawei_LAN.php  ----------------------------- 
09.10. 20:44:02    -Huawei: 192.168.178.144 Port: 502 GeräteID: 1
09.10. 20:44:05 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 20:44:07    -Wechselrichter-Daten: (00010000)
09.10. 20:44:10    -Batterie-Daten      : (00000000)
09.10. 20:44:10    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 20:44:10    -Pipe wird neu erstellt.
09.10. 20:44:10 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 20:44:37 >  -Gerätetyp: SUN2000-5KTL-M1  Modell ID: 426
09.10. 20:44:40    -Wechselrichter-Daten: (00010000)
09.10. 20:44:42    -Batterie-Daten      : (00000000)
09.10. 20:44:42    -MQTT Daten zum [ 192.168.178.32 ] senden.
09.10. 20:44:42 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
09.10. 20:44:58    -OK. Datenübertragung erfolgreich.
09.10. 20:44:58 |----------------   Stop   huawei_LAN.php    --------------------------- 
Grüße
Markus

Solario
Beiträge: 6
Registriert: So 6. Okt 2024, 11:41

Re: MQTT und Homeassistant

Beitrag von Solario »

Und nochmal ich :-)

Es läuft!!! Nochmal rebootet und siehe da, die Daten kommen in Homeassistant an!

Danke für die Hilfe!

Grüße
Markus

Zurück zu „MQTT und der Rest der Welt“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste