Fröling P4 einbinden

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

Vorheriges Thema - Nächstes Thema

SvenJust

Die doppelten Events bei MQTT werden auch in diesem Thread beschrieben: http://forum.fhem.de/index.php/topic,35158.msg274678.html#msg274678

Das Problem scheint abhängig von der Version des Mosquitto-Brokers zu sein. Den Fehler kann ich mit der Mosquitto-Version von Wheezy nachstellen. Mit einer selbst kompilierten Version vom Mosquitto-Broker von mosquitto.org von mosquitto version 1.4 (build date 2015-03-06 12:27:23+0100) tritt der Fehler nicht auf.

Der folgende Workaround funktioniert weiterhin:
attr <device> event-min-interval .*:5
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)

spooy99

Danke für die Rückmeldung - habe den Workaround eingetragen und damit das ganze "vereinzelt"  ;D

Gruß

FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

stiffmeister

Hallo Zusammen,
habe leider auch ein Problem mit dem mqqt.
hätte alles eigentlich nach plan eingerichtet, die vtest meldung erhalte ich.
aber wenn ich das perl script starte, dann steh im log folgendes:

DEBUG: Type: VA, ID: 144, Name: Boilerpumpe Ansteuerung, divider: , unit: %
DEBUG: getVA
DEBUG: the result is: Read word failed, aborting
DEBUG: returncode was: 1


und mit dem Befehl:
mosquitto_sub -t d8/p4/+
bekomme ich gar keine ausgabe in der konsole.
nur zur info, bei mir läuft alles auf einer maschine...

bitte um tipps  :'(

danke
stiff

SvenJust

Hallo stiff,

vermutlich verwendest Du mehr als eine USB-Schnittstelle an dem Rechner. Der Fehler zeigt, dass die Heizung NICHT abgefragt werden kann. Funktioniert das p4d Script und Du siehst die Website, wie https://forum.fhem.de/index.php/topic,30088.msg306632.html#msg306632 ?

Versuch bitte mal das folgende Kommando auf der Konsole:
/usr/local/bin/p4 getv -a 4 -d /dev/ttyUSB1
Statt ttyUSB1 bitte die Schnittstelle mit der seriellen Anbindung an die Heizung 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)

stiffmeister

Hi Sven,
ja das war das Problem. Hatte gestern nacht noch einen Geistesblitz und wollte es auf der Konsole testen.
Dabei kam mit dem p4 binary nix zurück, erst als ich des richtige device angab.
Ich verwende einen Comserver von w&t dafür.
Hab nun in deinem Perl script überall die option -d /dev/... mit eingetragen.
Allerdings frage ich mich, ob ich das eleganter lösen könnte?

Danke auf jedenfall für deine Hilfe!

lg
stiff

SvenJust

Hallo stiff,

dein Lösungsweg ist korrekt. Ich habe das Skript https://forum.fhem.de/index.php/topic,30088.msg293487.html#msg293487 entsprechend angepasst, die USB Schnittstelle kann dort jetzt entsprechend eingestellt werden.

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)

stiffmeister

Hallo Sven,
vielen Dank für die schnelle Reaktion und Hilfe!

Lg
Stiff

Tropaion

Hallo,

ich mal wieder.
Das Perl-Script funktioniert.

Mein Problem ist, das FHEM keine MQTT-Verbindungn aufbauen kann, es steht immer disconnected.
Errorlog:
Zitat2017.01.17 16:32:37 5: Cmd: >set MQTTHeizung connect<
2017.01.17 16:32:37 3: Opening MQTTHeizung device 10.0.0.102:1883
2017.01.17 16:32:37 3: Can't connect to 10.0.0.102:1883: Verbindungsaufbau abgelehnt
2017.01.17 16:32:37 5: Triggering MQTTHeizung (1 changes)
2017.01.17 16:32:37 5: Starting notify loop for MQTTHeizung, 1 event(s), first is connect
2017.01.17 16:32:37 4: WEB_10.0.0.111_54501 GET /fhem?detail=MQTTHeizung&fw_id=; BUFLEN:0
2017.01.17 16:32:37 4: name: /fhem?detail=MQTTHeizung&fw_id= / RL:2443 / text/html; charset=UTF-8 / Content-Encoding: gzip

Auf dem P4Server habe ich:
Zitat
sudo cpan -i Net::MQTT:Simple
sudo cpan -i Net::MQTT::Constants
Und das Perl-Script installiert.

Auf dem FHEM-Server habe ich
Zitat
sudo apt-get install mosquitto

installiert und läuft auch.

Was kann das sein?

SvenJust

Hallo !
Zitat von: Tropaion am 17 Januar 2017, 16:34:45
Das Perl-Script funktioniert.
Schön.

Zitat von: Tropaion am 17 Januar 2017, 16:34:45
2017.01.17 16:32:37 3: Can't connect to 10.0.0.102:1883: Verbindungsaufbau abgelehnt
Der Mosquitto Server lehnt die Verbindung aus Sicht des Clients ab. Der Grund ist aus der Entfernung nicht eindeutig zu sehen, möglich ist z.B. Firewall oder geschlossener Port auf der Netzwerkschnittstelle.

Lauscht der Mosquitto-Server (10.0.0.102) auf dem Port 1883?
netstat -an | grep LISTEN
Als Ergebnis des obigen Befehls muss
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN
ist der Liste stehen.

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

#54
Ja, so wie es aussieht tut er das.

Das bekomme ich raus:
Zitatfhem@raspberrypi:~ $ netstat -an | grep LISTEN
tcp        0      0 127.0.0.1:16384         0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:7072            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:2121            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:43574         0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 :::1883                 :::*                    LISTEN

ZitatDer Mosquitto Server lehnt die Verbindung aus Sicht des Clients ab.
Mir kommt es eher so vor als würde der Client die Verbindung ablehnen?
Der Error-Log ist ja aus FHEM.

lg,
tropaion

SvenJust

Hallo,

Ich versuche dann mal tief in die Glaskugel zu schauen:

Du verwendest RASPBIAN WHEEZY und nicht RASPBIAN JESSIE. In Wheezy ist der MQTT-Server Mosquitto für das MQTT-Protokoll 3.1 enthalten. Der Mosquitto-Server für MQTT 3.11 ist erst bei Jessie vorhanden, siehe auch hier: https://packages.debian.org/search?keywords=mosquitto

Es wird ein MQTT Server für die Protokollversion 3.11 benötigt.

Das Update von Mosquitto wird hier beschrieben: https://mosquitto.org/2013/01/mosquitto-debian-repository/ Es sind die folgenden Schritte auf auszuführen (aktuell nicht getestet)
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-wheezy.list
apt-get update
apt-get install mosquitto mosquitto-clients


Weiteres zum Testen von mosquitto bzw. MQTT ist bei hackaday beschrieben: http://hackaday.com/2016/05/09/minimal-mqtt-building-a-broker/

Bitte gib kurz Nachricht, ob es so funktioniert hat. Viel Erfolg!

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

#56
Nein, ich verwende Jessie ;).
Ganz neu aufgesetzt und alles Up-to-Date.

Aber ich habe gerade zufällig etwas gefunden
Zitatmosquitto
1484821177: mosquitto version 1.3.4 (build date 2014-08-22 06:10:51+0000) starting
1484821177: Using default config.
1484821177: Opening ipv4 listen socket on port 1883.
1484821177: Error: Address already in use

Jedoch habe ich keine Ahnung warum der Port in Verwendung ist.
Ich hab da (jedenfalls nicht absichtlich) etwas darauf laufen.

netstat gibt:
Zitatfhem@raspberrypi:~ $ sudo netstat -tulpen
[sudo] password for fhem:
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 127.0.0.1:16384         0.0.0.0:*               LISTEN      1001       8670        548/perl
tcp        0      0 0.0.0.0:7072            0.0.0.0:*               LISTEN      1001       9969        548/perl
tcp        0      0 0.0.0.0:2121            0.0.0.0:*               LISTEN      1001       9976        569/perl
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      0          10132       740/lighttpd
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      1001       8667        548/perl
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          9020        692/sshd
tcp        0      0 127.0.0.1:43574         0.0.0.0:*               LISTEN      1001       8681        548/perl
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      109        33407       6593/mosquitto
tcp6       0      0 :::80                   :::*                    LISTEN      0          10133       740/lighttpd
tcp6       0      0 :::22                   :::*                    LISTEN      0          9022        692/sshd
tcp6       0      0 :::1883                 :::*                    LISTEN      109        33408       6593/mosquitto
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          8679        691/dhcpcd
udp        0      0 10.0.0.112:123          0.0.0.0:*                           0          8997        728/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           0          8996        728/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           0          8989        728/ntpd
udp        0      0 0.0.0.0:57999           0.0.0.0:*                           105        9900        393/avahi-daemon: r
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           105        9898        393/avahi-daemon: r
udp6       0      0 fe80::79f9:a02d:747:123 :::*                                0          8999        728/ntpd
udp6       0      0 ::1:123                 :::*                                0          8998        728/ntpd
udp6       0      0 :::123                  :::*                                0          8990        728/ntpd
udp6       0      0 :::5353                 :::*                                105        9899        393/avahi-daemon: r
udp6       0      0 :::50415                :::*                                105        9901        393/avahi-daemon: r

Mfg,
Tropaion

SvenJust

Ok,
Zitat von: Tropaion am 19 Januar 2017, 11:20:53
Nein, ich verwende Jessie ;).
Ganz neu aufgesetzt und alles Up-to-Date.

mosquitto
1484821177: mosquitto version 1.3.4 (build date 2014-08-22 06:10:51+0000) starting
Die Mosquitto Version 1.3.4 ist alt und, versuche mal ein update. Das folgende ist nicht getestet, sollte aber problemlos laufen.

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
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

#58
Zitatmosquitto
1484833027: mosquitto version 1.4.10 (build date Thu, 25 Aug 2016 10:12:09 +0100) starting
1484833027: Using default config.
1484833027: Opening ipv4 listen socket on port 1883.
1484833027: Opening ipv6 listen socket on port 1883.
^C1484833108: mosquitto version 1.4.10 terminating

Zitatsudo service mosquitto status
[sudo] password for fhem:
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
   Loaded: loaded (/etc/init.d/mosquitto)
   Active: active (exited) since Do 2017-01-19 14:32:42 CET; 22min ago
  Process: 458 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)

Jan 19 14:32:42 raspberrypi systemd[1]: Starting LSB: mosquitto MQTT v3.1 me....
Jan 19 14:32:42 raspberrypi mosquitto[458]: Starting network daemon:: mosquitto.
Jan 19 14:32:42 raspberrypi systemd[1]: Started LSB: mosquitto MQTT v3.1 mes....
Hint: Some lines were ellipsized, use -l to show in full.

hab ich jetzt.
Brauche ich am FHEM-Server mosquitto-clients?
Und, muss man das auf dem Heizungs-Server installieren?
Auf dem hab ich nämlich nur die zwei CPAN-Dateien installiert

Es steht noch immer disconnected.

Muss ich bei FHEM irgendeinen benutzername / passwort angeben?

Mfg,
Tropaion

SvenJust

Zitat von: Tropaion am 19 Januar 2017, 14:42:02
mosquitto
1484833027: mosquitto version 1.4.10 (build date Thu, 25 Aug 2016 10:12:09 +0100) starting
Das ist jetzt eine Version, die mqtt 3.11 unterstützt.

Zitat von: Tropaion am 19 Januar 2017, 14:42:02
Brauche ich am FHEM-Server mosquitto-clients?

Mit den Clients kannst Du testen, also ja, bitte auf Fhem- und Heizung-Server installieren.

Dann auf dem Server testen, ob Du subscriben kannst, wie steht im genannten Artikel http://hackaday.com/2016/05/09/minimal-mqtt-building-a-broker/ im Abschnitt Playing around.

Also zwei Consolen auf dem FHEM-Server öffnen, auf der ersten Console mosquitto_sub -h localhost -t "test/topic" (mit Anführungszeichen) eingeben, zur zweiten Console wechseln und mosquitto_pub -h localhost -t "test/topic" -m "hello" eingeben. Auf der ersten Console muss dann hello erscheinen. Die Übertragung über hat mqtt hatt geklappt.

Dann zum Heizungs-Server wechseln, dort auch die mosquitto-clients installieren und den folgenden Befehl ausführen  mosquitto_pub -h 10.0.0.102 -t "test/topic" -m "hello" ausführen. Erscheint auf dem Fhem-Server "hello"?
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)