Fröling P4 einbinden

Begonnen von Tropaion, 07 Dezember 2014, 11:58:37

Vorheriges Thema - Nächstes Thema

Tropaion

Habe das mit zwei Shells probiert, das ist komisch...
1. FHEM-Shell:
Zitatfhem@raspberrypi:~ $ sudo mosquitto_sub -h localhost -t "test/topic"
[sudo] password for fhem:
Error: Connection refused

2. FHEM-Shell:
fhem@raspberrypi:~ $ sudo mosquitto_pub -h localhost -t "test/topic" -m "hello"
[sudo] password for fhem:
Error: Connection refused

Mfg,
Tropaion

SvenJust

Zitat von: Tropaion am 19 Januar 2017, 15:13:33
Error: Connection refused
Das sollte bei lokaler Benutzung nicht kommen.

Wie sieht die Datei /etc/mosquitto/mosquitto.conf aus?
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Tropaion

In der .conf steht:

Zitatmosquitto
1484835687: mosquitto version 1.4.10 (build date Thu, 25 Aug 2016 10:12:09 +0100) starting
1484835687: Using default config.
1484835687: Opening ipv4 listen socket on port 1883.
1484835687: Opening ipv6 listen socket on port 1883.
1484835777: New connection from 10.0.0.102 on port 1883.
1484835777: New client connected from 10.0.0.102 as Net::MQTT::Simple[7770] (c1, k60).
1484835789: Socket error on client Net::MQTT::Simple[7770], disconnecting.

Ich hab jetzt mal mit dem FHEM-Server mit "mosquitto" mitgehört und dann auf dem Heizungsserver das Perl-Script gestartet, dann bekomme ich auf dem FHEM-Server das:

Zitatmosquitto
1484835687: mosquitto version 1.4.10 (build date Thu, 25 Aug 2016 10:12:09 +0100) starting
1484835687: Using default config.
1484835687: Opening ipv4 listen socket on port 1883.
1484835687: Opening ipv6 listen socket on port 1883.
1484835777: New connection from 10.0.0.102 on port 1883.
1484835777: New client connected from 10.0.0.102 as Net::MQTT::Simple[7770] (c1, k60).
1484835789: Socket error on client Net::MQTT::Simple[7770], disconnecting.
^C1484835807: mosquitto version 1.4.10 terminating

Mfg,
Tropaion


SvenJust

#63
Das ist momentan ein Stochern im Nebel...

Teste bitte zuerst, dass der mqtt-Server lokal, also auf dem FHEM-Server mit den Befehlen (mosquitto_sub, mosquitto_pub) in der Console funktioniert. Erst wenn das korrekt läuft, macht es Sinn, die Kommunikation vom Heizungsserver zu testen.

Melde Dich bitte zum Testen als root auf dem fhem Server an, sudo bash. Dann mosquitto_sub -h localhost -t "test/topic". Wieder Error: Connection refused?

Die Datei /etc/mosquitto/mosquitto.conf sollte in etwa wie folgt aussehen:
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d


edit: mosquitto.conf geupdated
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

SvenJust

Hallo Tropaion,

ich habe gerade ein aktuelles Raspbian Jessie auf einen Raspberry PI 1 installiert. Anschliessend habe ich den MQTT Server mosquitto nachinstalliert:

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
apt-get update
apt-get install mosquitto mosquitto-clients


Anschliessend habe ich zweimal Putty gestartet und einmal
mosquitto_sub -h localhost -t "test/topic"
und auf der zweiten Puttyinstanz
mosquitto_pub -h localhost -t "test/topic" -m "hello" ausgeführt. Es funktioniert wie vorher beschrieben, irgendetwas muss bei Dir bei der Installation und dem Testen fehlgeschlagen sein. Vielleicht ist es das Schnellste, wenn Du mit einer sauberen Installation neu startest. Es sollte maximal eine Stunde dauern, bis der fhem-Server wieder läuft, Backup bzw. zweite Speicherkarte für die Tests verwenden...

VG Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Tropaion

Ok, du hast recht.
Werde morgen noch mal neu aufsetzen und melde mich dann!

Tropaion

Also, nach der Neuinstallation von Jessie + FHEM funktioniert jetzt das kommunizieren mit 2 Shells am selben RasPi.
Aber wenn wenn ich wieder mit der MQTT-Device verbinden will kommt:

Zitat2017.01.21 11:39:01 3: Opening MQTTHeizung device 10.0.0.102:1883
2017.01.21 11:39:01 3: Can't connect to 10.0.0.102:1883: Connection refused

Und die Shell sagt:
Zitat
root@raspberrypi:/etc/apt/sources.list.d# mosquitto
1484999081: mosquitto version 1.4.10 (build date Thu, 25 Aug 2016 10:12:09 +0100) starting
1484999081: Using default config.
1484999081: Opening ipv4 listen socket on port 1883.
1484999081: Error: Address already in use

SvenJust

Hallo!
Zitat von: Tropaion am 21 Januar 2017, 12:47:48
Also, nach der Neuinstallation von Jessie + FHEM funktioniert jetzt das kommunizieren mit 2 Shells am selben RasPi.
Das ist doch schon mal ein Fortschritt, sehr gut.

Zitat von: Tropaion am 21 Januar 2017, 12:47:48
root@raspberrypi:/etc/apt/sources.list.d# mosquitto
1484999081: mosquitto version 1.4.10 (build date Thu, 25 Aug 2016 10:12:09 +0100) starting
1484999081: Using default config.
1484999081: Opening ipv4 listen socket on port 1883.
1484999081: Error: Address already in use
Der Fehler kommt, weil schon eine Instanz von Mosquitto läuft und Du versucht eine zweite Instanz zu Starten. Da beide Instanzen auf den gleichen Port zugreifen möchten, kommt es zu dem Fehler. Der mosquitto-Server wird automatisch beim Start des Raspberrys gestartet. Du kannst den Server beenden mit sudo service mosquitto stop und starten mit sudo service mosquitto start. Anschließend kannst Du sudo mosquitto starten.

Hast Du fhem nach der Installation aktualisiert? (update)
Ist die IP (10.0.0.102) für den Rechner mit fhem und mosquitto korrekt? Was ergibt ein sudo ifconfig?

Ich habe in fhem nur einen mqtt_broker angelegt, der sich automatisch mit mosquitto verbindet. Ein list mqtt_broker ergibt:
Internals:
   DEF        192.168.20.86:1883
   DeviceName 192.168.20.86:1883
   FD         5
   NAME       mqtt_broker
   NOTIFYDEV  global
   NR         20
   NTFY_ORDER 50-mqtt_broker
   PARTIAL
   STATE      opened
   TYPE       MQTT
   buf
   msgid      1
   ping_received 1
   timeout    60
   Readings:
     2017-01-21 13:02:59   connection      active
     2017-01-21 13:02:59   state           opened
   Messages:
Attributes:
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Tropaion

Ok, die Verbindung steht jetzt.
Blöder Fehler, aber ich hab die IP vom Heizungsserver genommen.

Jetzt bekomm ich das raus (Bild), habe das Perl-Script ausgeführt.

Sollte da nicht mehr stehen?

Danke und Mfg,
Tropaion

SvenJust

Setze doch bitte in dem Skript auf dem Heizungsrechner die Variable $debug=1 ####### In der folgenden Zeile: 0 = keine Debugmeldungen, 1 = Debugmeldungen
my $debug = 1;


und führe das Skript als User root aus /usr/local/bin/p4tomqtt.pl

Die Fehlermeldungen werden Dir dann angezeigt.

Hast Du den USB-Adapter passend eingetragen?
####### In der folgenden Zeile den USB-Adapter eintragen
my $usbdev="/dev/ttyUSB1";


VG Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Tropaion

#70
Ja, die USB-Schnittstelle passt.

Die Ausgabe vom Script ist etwas lang, darum hänge ich sie im Anhang als .txt an.

Danke für deine Hilfe und Mfg,
Tropaion

EDIT:
Ok, interessant.
Jetzt wo ich das Script ausgeführt habe, steht auf einmal mehr da.
Wie oft führst du das per Cronjob aus? Minütlich?

EDIT:
Ist es möglich, einzelne Readings als eigenes Device auszuführen?
Wenn ja, wie geht das?

SvenJust

Sehr gut, dann läuft es soweit...

Zitat von: Tropaion am 22 Januar 2017, 11:59:04
Wie oft führst du das per Cronjob aus? Minütlich?
Das Skript rufe ich alle 2 Minuten auf.PATH=/sbin:/usr/sbin:/bin:/usr/bin

# start p4tomqtt every two minutes
*/2 * * * * root /usr/local/bin/p4tomqtt.pl >> /dev/null 2>&1


Zitat von: Tropaion am 22 Januar 2017, 11:59:04
Ist es möglich, einzelne Readings als eigenes Device auszuführen?
Ja, das geht. Schau mal unter ReadingsProxy, https://fhem.de/commandref.html#readingsProxy

Die Einheiten für °C kannst Du im Skript korrigieren, es liegt an der unterschiedlichen Zeichenkodierung.

Der Fehler bei den Werten VA273 - VA279 liegt am unterschiedlichen Softwarestand der Heizung, ich habe hier 50.04.05.12. Das Update der Heizung spielt der Kundendienst bei der jährlichen Wartung ein. Die Werte zum Pelletverbrauch sind für mich ein wichtiges Kriterium für die Pelletbestellungen und der Wert VA279-VerbleibendeHeizstundenbiszurAscheentleerenWarnung zeigt, wann die Asche geleert werden muss ohne das ich zur Heizung gehen muss.

VG Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Tropaion

Super, danke für deine Hilfe!

Ich habe meinen Cronjob mit
Zitat*/1 *   * * *   root    perl /usr/local/bin/p4tomqtt.pl
einstellt, geht das nicht?

Ich hatte geplant, das ich mir die Fehler auf der SmartVisu anzeigen lasse und dann sehe ich eh, wann "Aschelade leeren" da steht.

Ok, danke für denn Hinweis wegen denn Einheiten, werden korrigiert ;)
Das mit ReadingsProxy werde ich mir ansehen, nochmals danke ;)

Mfg,
Tropaion

spooy99

Hallo,
ich rufe das genauso auf (über /etc/crontab )

*/1 *   * * *   root    perl /usr/local/bin/p4ToMqtt.pl


und das funktioniert bei mir problemlos. Was bekommst für eine Fehlermeldung?
spooy99
FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

SvenJust

Zitat von: Tropaion am 22 Januar 2017, 15:01:54
Cronjob

Bei dem Cronjob funktionieren alle Zeiten problemlos. Da ich sehr viele Werte der Heizung logge und zusätzlich noch Temperaturwerte von acht 1-wire Sensoren logge, waren es mir bei einem minütlichen Cronjob nur zu viele Werte und die Plots waren entsprechend langsam (Wochenplots). Die Werte alle zwei Minuten abzufragen, halbiert die Logdateien.

Um die Fehlermeldungen der Heizung nach fhem zu übertragen, habe ich das Skript im letzten Jahr, um die Fehlermeldungen abzufragen. Wenn Interesse besteht (bitte hier äußern), poste ich das Skript mit einer Anleitung in den nächsten Tagen.

VG Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)