FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: meier81 am 23 Dezember 2020, 16:55:09

Titel: [erledigt] Probleme mit der MQTT-Definition für Lumix Krinner Lampen
Beitrag von: meier81 am 23 Dezember 2020, 16:55:09
Hallo euch allen,

nachdem ich heute rausgefunden habe wie ich mittels meiner YTF IR Bridge und den richtigen raw-mode-codes meine Tannenbaumlampen bedienen kann stehe ich gerade vor dem nächsten Problem.

Ich habe schon einige MQTT-Devices bei mir am laufen, von daher ist mir das Thema nicht neu. Hab euch mal meine bisherige Definition für die Kerzen angefügt:

define Weihnachtsbaum MQTT_DEVICE
attr Weihnachtsbaum IODev MQTT
attr Weihnachtsbaum event-on-change-reading .*
attr Weihnachtsbaum group Lampen
attr Weihnachtsbaum icon scene_x-mas
attr Weihnachtsbaum publishSet cmnd/ytf_ir_bridge/irsend
attr Weihnachtsbaum room Testbereich->Testdevices
attr Weihnachtsbaum subscribeReading_LWT tele/ytf_ir_bridge/LWT


Rückmeldung ob sie ein oder aus sind bekomme ich ja keine, deswegen ist diese hier auch nicht definiert. Das Problem was ich jetzt habe ist das natürlich "publishSet" nicht richtig bzw. vollständig definiert ist. Ich muss an den oben angegebenen Topic folgende "raw"Daten senden

für ON:
0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600

und für OFF:
0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600

Kann mir von euch da mal bitte jemand helfen wie ich das richtig definiere.

Gruß und schon mal danke

Markus

P.S.: Über MQTT.fx lässt sich das wunderbar bedienen, also die Befehlskette passt auf jeden Fall  ;)
Titel: Antw:Probleme mit der MQTT-Definition für Lumix Krinner Lampen
Beitrag von: meier81 am 24 Dezember 2020, 10:46:31
Nach einigem Testen und probieren hab ich jetzt folgende Lösung, da es zur Zeit (jedenfalls was ich so rauslesen konnte) keine Möglichkeit gibt mit dem MQTT_DEVICE raw-Daten zu senden.

Als erstes habe ich in der 99_myUtils.pm folgendes definiert:

####################
# MQTT Code senden #
####################
sub SendMQTT($) {
my ($mqttcode) = @_;
my $cmd = "mosquitto_pub -h 192.168.179.50 --quiet -t cmnd/ytf_ir_bridge/irsend -m '$mqttcode'";
system( "$cmd" );
return undef;
}


In FHEM habe ich dann ein DOIF definiert welches das Skript anspricht:

define di_Weihnachtsbeleuchtung DOIF ## Morgens Anschalten\
([06:00])\
   (set Weihnachtsbeleuchtung on)\
## Morgens Ausschalten\
DOELSEIF ([{sunrise(1800, "07:00", "09:00")}])\
   (set Weihnachtsbeleuchtung off)\
## Abends anschalten\
DOELSEIF ([Wetterstation:brightness] < 20 and [15:00-18:00])\
   (set Weihnachtsbeleuchtung on)\
## Abends ausschalten\
DOELSEIF ([22:00])\
   (set Weihnachtsbeleuchtung off)
attr di_Weihnachtsbeleuchtung cmdState on|off|on|off
attr di_Weihnachtsbeleuchtung icon helper_doif


Funktioniert soweit erstmal einwandfrei. Super wäre natürlich wenn man das MQTT_DEVICE so erweitern könnte und damit auch raw-Daten senden kann, dann könnte man das alles dort definieren.

Gruß Markus
Titel: Antw:Probleme mit der MQTT-Definition für Lumix Krinner Lampen
Beitrag von: meier81 am 25 Dezember 2020, 11:31:42
Hier nochmal ein Nachtrag wie es ohne die 99_myUtils.pm geht:

defmod di_Weihnachtsbaum DOIF ## Morgens Anschalten\
([07:00])\
   (set MQTT publish cmnd/ytf_ir_bridge/irsend "0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600")\
## Morgens Ausschalten\
DOELSEIF ([Wetterstation:brightness] > 5000)\
   (set MQTT publish cmnd/ytf_ir_bridge/irsend "0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600")\
## Abends anschalten\
DOELSEIF ([Wetterstation:brightness] < 1000)\
   (set MQTT publish cmnd/ytf_ir_bridge/irsend "0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000,5600")   \
## Abends ausschalten\
DOELSEIF ([23:00])\
   (set MQTT publish cmnd/ytf_ir_bridge/irsend "0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000,5600")
attr di_Weihnachtsbaum cmdState on|off|on|off
attr di_Weihnachtsbaum icon helper_doif


Gruß Markus
Titel: Antw:Probleme mit der MQTT-Definition für Lumix Krinner Lampen
Beitrag von: meier81 am 26 Dezember 2020, 22:45:43
So, nochmal kurz ein Update von mir: Bin heute komplett von MQTT auf MQTT2 umgestiegen, dort gibt es die Möglichkeit bezüglich dem senden von Rohdaten. Funktioniert super und das autocreate hat weitestgehend auch funktioniert.

Gruß

Markus
Titel: Antw:[erledigt] Probleme mit der MQTT-Definition für Lumix Krinner Lampen
Beitrag von: sylvester am 05 März 2022, 23:12:10
Hallo zusammen,

ich versuche auch gerade, die Krinner-Lampen anzusteuern. Da es vor Weihnachten "eben mal schnell" nicht geklappt hat, habe ich mich heute einmal daran gesetzt. Im ersten Schritt habe ich die Protokolle ausgelesen. Da es sich um keinen Protokoll-Standard handelt, muss man die Daten später im raw-Modus versenden.
Dabei genügt es für die alte Version der Lumix-Lampen den Befehl nur einmal zu senden (die Lampen unterstützen in der Regel nur "on" und "off"). Für die neuere Version der Lampen mit "Superlight" muss das Protokoll mindestens 3x hintereinander gesendet werden. Die Fernbedienung macht das mit einer Pause von 5,6ms.

Ich habe die Befehle über die IR-WLAN-Bridge von Pearl mit Tasmota in der Konsole getestet. Da funktionieren sie.
Als nächstes muss ich es schaffen, die Befehle aus Fhem heraus über MQTT zu versenden ... da weiß ich noch nicht so richtig, wie es geht.


A On
IRSend 0,2000,1000,400,400,1000,1000,400,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000
A Off
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,400,1000,400,2000
A Superlight
IRSend 0,2000,400,1000,1000,400,1000,400,1000,400,1000,400,400,1000,1000,400,1000,400,400,2000
A FasterFlicker
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,400,1000,400,2000
A SlowFlicker
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,1000,400,400,2000
A DimUp
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,1000,400,400,2000
A DimDown
IRSend 0,2000,1000,400,1000,400,400,1000,400,1000,1000,400,400,1000,400,1000,1000,400,400,2000
A Timer4hOff
IRSend 0,2000,400,1000,1000,400,400,1000,1000,400,1000,400,400,1000,1000,400,400,1000,400,2000
A Timer4hOn
IRSend 0,2000,400,1000,1000,400,400,1000,1000,400,1000,400,400,1000,400,1000,1000,400,400,2000

B On
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,1000,400,1000,400,1000,400,400,2000
B Off
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,1000,400,400,1000,400,1000,400,2000
B Superlight
IRSend 0,2000,400,1000,1000,400,1000,400,1000,400,1000,400,1000,400,1000,400,1000,400,400,2000
B FasterFlicker
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,1000,400,1000,400,400,1000,400,2000
B SlowFlicker
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,1000,400,400,1000,1000,400,400,2000
B DimUp
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,1000,400,1000,400,400,1000,1000,400,400,2000
B DimDown
IRSend 0,2000,1000,400,400,1000,400,1000,400,1000,1000,400,1000,400,400,1000,1000,400,400,2000
B Timer4hOff
IRSend 0,2000,400,1000,1000,400,400,1000,1000,400,1000,400,1000,400,1000,400,400,1000,400,2000
B Timer4hOn
IRSend 0,2000,400,1000,1000,400,400,1000,1000,400,1000,400,1000,400,400,1000,1000,400,400,2000

C On
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,400,1000,1000,400,1000,400,1000,400,400,2000
C Off
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,400,1000,1000,400,400,1000,400,1000,400,2000
C Superlight
IRSend 0,2000,400,1000,1000,400,1000,400,1000,400,400,1000,1000,400,1000,400,1000,400,400,2000
C FasterFlicker
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,400,1000,1000,400,1000,400,400,1000,400,2000
C SlowFlicker
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,400,1000,1000,400,400,1000,1000,400,400,2000
C DimUp
IRSend 0,2000,1000,400,1000,400,400,1000,1000,400,400,1000,1000,400,400,1000,1000,400,400,2000
C DimDown
IRSend 0,2000,1000,400,400,1000,400,1000,400,1000,400,1000,1000,400,400,1000,1000,400,400,2000
C Timer4hOff
IRSend 0,2000,400,1000,1000,400,400,1000,1000,400,400,1000,1000,400,1000,400,400,1000,400,2000
C Timer4hOn
IRSend 0,2000,400,1000,1000,400,400,1000,1000,400,400,1000,1000,400,400,1000,1000,400,400,2000