Dummy Schalter für Tasmota/MQTT Steckdose mit 2 schaltbaren Dosen

Begonnen von prodigy7, 02 Januar 2020, 15:27:58

Vorheriges Thema - Nächstes Thema

prodigy7

Hallo zusammen,

ich habe heute erfolgreich 4 Gosund SP112 Steckdosen mit Tasmota geflashed und den MQTT Teil in FHEM eingerichtet.
Über ein Device "Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.socket" kann ich soweit auch problemlos die Steckdose Ein- und Ausschalten. Jetzt würde ich gerne die USB-Ports, die auch schaltbar sind, separat steuern wollen (auch damit ich die noch via Alexa verfügbar machen kann).
Soweit habe ich den Weg gewählt, ein Dummy Device einzurichten und habe mal zusammenkopiert, was ich so gefunden habe:


define Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.usb dummy
attr Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.usb readingList Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.socket
attr Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.usb webCmd on:off
attr Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.usb setList on Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.socket:cmnd/TASMOTA_xxxxxx_fb/POWER2 on\
off Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.socket:cmnd/TASMOTA_xxxxxx_fb/POWER2 off
attr Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.usb devStateIcon ON:ios-on-green:off OFF:ios-off:on


Funktionieren tut das aktuell nicht. Was mach ich denn hier falsch?

Beta-User

Dummy.... (Ist nicht optimal).

Nimm lieber ein 2. MQTT(2)-Device oder readingsProxy. 2. device ist m.E. die beste Variante.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rudolfkoenig

Oder auch: ein Befehl aus der dummy setList loest nichts aus, insb. sendet es keine MQTT Nachricht.

TomLee

Die Punkte im NAME sind auch nicht optimal (auch wenn man sie nutzen darf, nur nicht an erster Stelle), irgendwann wird das hinderlich sein in Perl (FHEM).

Gruß

Thomas

prodigy7

Zitat von: Beta-User am 02 Januar 2020, 16:14:09
Dummy.... (Ist nicht optimal).

Nimm lieber ein 2. MQTT(2)-Device oder readingsProxy. 2. device ist m.E. die beste Variante.
Ich habe das so funktionierend umgesetzt bekommen:
defmod test1 readingsProxy Wohnung3.Unzugeordnet.Device.Tasmota.xxxxxx.socket:POWER2
attr test1 setFn {fhem ("set mqttBroker publish cmnd/TASMOTA_xxxxxx_fb/POWER2 $CMD");;}
attr test1 webCmd on:off
attr test1 setList on off
attr test1 valueFn {lc($VALUE)}
attr test1 icon message_socket
attr test1 devStateIcon on:ios-on-green:off off:ios-off:on

Ist das so gut oder geht das eleganter/besser?

prodigy7

Zitat von: TomLee am 02 Januar 2020, 16:47:55
Die Punkte im NAME sind auch nicht optimal (auch wenn man sie nutzen darf, nur nicht an erster Stelle), irgendwann wird das hinderlich sein in Perl (FHEM).
Historisch gewachsen habe ich den Syntax bei fast allen Geräten usw. so verwendet. Ja, wegen RegEx könnte das vielleicht unerwartet mal krachen. Gibt es einen einfachen Weg, das umzustellen? Der Aufbau der Gerätenamen ist eigentlich immer im gleichen Muster, von daher könnte ich mit Suchen & Ersetzen das umstellen in der Konfig, wenn es da keine Knackpunkte gibt.

Beta-User

Kommt drauf an, welche MQTT-Implementierug Du nutzt. Mit MQTT2_DEVICE ginge es eleganter... Mit expandJSON o. Tasmota_device eher nicht.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

prodigy7

Zitat von: Beta-User am 02 Januar 2020, 18:48:44
Kommt drauf an, welche MQTT-Implementierug Du nutzt. Mit MQTT2_DEVICE ginge es eleganter... Mit expandJSON o. Tasmota_device eher nicht.
Habe die FHEM eigene Implementierung (die du vermutlich meinst?) verwendet. Wie würde denn der elegantere Weg aussehen? Also es funktioniert ja schon wie es ist, aber lerne gerne dazu :)

Beta-User

Es gibt 2 FHEM-eigene, deswegen frage ich...TYPE vom IO-Modul?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

prodigy7


TomLee

ZitatJetzt würde ich gerne die USB-Ports, die auch schaltbar sind, separat steuern wollen (auch damit ich die noch via Alexa verfügbar machen kann).

Jetzt lese und ich verstehe das erst, sind die Ports jeder einzeln schaltbar oder ist der Gosund praktisch ein 2-Fach-Aktor der mit POWER2 praktisch das Netzteil schaltet oder gibts noch ein POWER3 um den zweiten Port zu schalten.

Egal wie, so was such ich als UP-Variante, passend zu verwendeten Schalterserie  ;D

Gruß

Thomas

prodigy7

Zitat von: TomLee am 02 Januar 2020, 21:36:22
Jetzt lese und ich verstehe das erst, sind die Ports jeder einzeln schaltbar oder ist der Gosund praktisch ein 2-Fach-Aktor der mit POWER2 praktisch das Netzteil schaltet oder gibts noch ein POWER3 um den zweiten Port zu schalten.

Egal wie, so was such ich als UP-Variante, passend zu verwendeten Schalterserie  ;D
Die USB-Ports und Steckdose lassen sich jeweils einzeln schalten (wobei die USB-Ports nur zusammen). Der gemessene Strom ist jeweils die Summe von USB-Ports (POWER2) und Steckdose (POWER1), man kann also z.B. nicht ermitteln, wie der Verbrauch an einem USB-Port ist während an der Steckdose etwas angeschlossen ist.

TomLee

Um nur die Ports zu schalten, find ich die ReadingsProxy-Lösung dann sehr elegant, wozu brauch ich hier dann die ganzen anderen Readings.  :P

Beta-User

Dafür sollte es sogar ein attrTemplate geben, es gab nur im Ausgamgsthread dazu keine Rückmeldung, ob das tut was es soll...Also: bitte suchen und testen :D .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Beta-User

Zitat von: TomLee am 02 Januar 2020, 21:46:47
Um nur die Ports zu schalten, find ich die ReadingsProxy-Lösung dann sehr elegant, wozu brauch ich hier dann die ganzen anderen Readings.  :P
Thx. auch nochmal für den Hinweis; tendenziell hast du recht, man sollte die den weiteren Kanälen subscribierten Topics begrenzen, RESULT sollte reichen, oder?
Und dann mit jsonMap auch noch die unnötigen Readings aus dieser json-Quelle rausflitern, die man für den jeweiligen Kanal nicht braucht ;) .
Werde mir das in Richtung json-Mapping überarbeitete template-file vor dem Schubsen ins svn nochmal dahingehend ansehen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors