MQTT2+Shelly: erste Konfiguration und template-Entwicklung

Begonnen von miggun, 03 Dezember 2018, 21:05:34

Vorheriges Thema - Nächstes Thema

Beta-User

Müßte/könnte eher so aussehen (bitte im Event-Monitor das Event abgreifen!; evtl. fehlt ein Punkt nach dem Doppelpunkt):
define n_Kueche_Leistung  notify Kueche_(Eckbank|Hauptlicht):off { my $r1 = Value("Kueche_Eckbank");; my $r2 = Value("Kueche_Hauptlicht");; if ($r1 eq "off" && $r2 eq "off") { fhem("set Kueche_Licht_Leistung 0");; } }

Else ist nicht erforderlich, aber ich würde nicht einen Dummy (?) auf "0" setzen, sondern das Reading an dem "richtigen" Device (hier: Kueche_Eckbank?); imo wird viel zu viel mit Dummys rumgekaspert um irgendwelche Werte zu speichern; das ist völlig unübersichtlich und unnötig).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

miggun

Ich habe so wie Du es angedeutet hast, aus der Leistung ein eigenes Device gemacht und wollte da direkt den Wert setzen. Ich wollte versuchen, so wie es oft empfohlen wird, ohne Dummys auszukommen.

Kueche_Licht_Leistung ist also ein eigenes Device.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

#62
Funktioniert nicht.

ich müsste mal per Hand probieren, wie ich den Wert auf 0 setzen kann. 2x off registriert er, setzt aber keinen Wert. ImEvent LogFile kommt:

    2018.12.05 17:17:25 3: n_Kueche_Leistung return value: Unknown argument 0, choose one of attrTemplate:tasmota_1channel,tasmota_2channel,tasmota_basic,zigbee2mqtt_bridge,zigbee2mqtt_bulb,zigbee2mqtt_colorbulb,
zigbee2mqtt_colorbulbWithoutColorTemp,zigbee2mqtt_hueMotionSensor,zigbee2mqtt_smart+plug,zigbee2mqtt_smokeDetector
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

#63
So, das ganze funktioniert jetzt auch.
Vielen Dank für die großartige Hilfe.

Mit setSTATE konnte ich das ganze manuell auf 0 setzen, somit habe ich das in den Code eingesetzt und es funktioniert.
Hier der funktionierende Auszug.

Internals:
   CFGFN     
   DEF        Kueche_(Eckbank|Hauptlicht):off { my $r1 = Value("Kueche_Eckbank"); my $r2 = Value("Kueche_Hauptlicht"); if ($r1 eq "off" && $r2 eq "off") { fhem("setSTATE Kueche_Licht_Leistung 0"); } }
   NAME       n_Kueche_Leistung
   NR         542
   NTFY_ORDER 50-n_Kueche_Leistung
   REGEXP     Kueche_(Eckbank|Hauptlicht):off
   STATE      2018-12-05 17:48:25
   TRIGGERTIME 1544028505.96072
   TYPE       notify
   READINGS:
     2018-12-05 17:30:31   state           active
Attributes:
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

#64
Da der Wert sich so nicht von selbst aktualisiert, das ganze mit setReading probiert, jetzt ist es perfekt.
Internals:
   CFGFN     
   DEF        Kueche_(Eckbank|Hauptlicht):off { my $r1 = Value("Kueche_Eckbank"); my $r2 = Value("Kueche_Hauptlicht"); if ($r1 eq "off" && $r2 eq "off") { fhem("setReading Kueche_Licht_Leistung power 0"); } }
   NAME       n_Kueche_Leistung
   NR         542
   NTFY_ORDER 50-n_Kueche_Leistung
   REGEXP     Kueche_(Eckbank|Hauptlicht):off
   STATE      2018-12-05 17:59:56
   TRIGGERTIME 1544029196.0451
   TYPE       notify
   READINGS:
     2018-12-05 17:56:44   state           active
Attributes:
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

Beta-User

Danke für's Feedback!

Bekommt der shelly so dann auch die Anweisung, sich zurückzusetzen, oder kommt dann wieder ein Summenwert zurück?

Konntest du das mit dem template mal testen (sollte auch für den shelly4 bzw. die ersten beiden Relays dort) passen...)? Braucht es noch einen setList-Eintrag für power zum Zurücksetzen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

miggun

Das mit dem Template muss ich mir zu Hause angucken, habe jetzt alles mit dem Mobiltelefon eingestellt. Aber ist mit dem Handy echt üble fummelei.
Noch sehe ich das Template nicht in Fhem, ich muss jetzt also gucken, warum nicht. Den Sonoff, der davor steht seh ich auch nicht.

Ja, die Anweisung wieder einen Messwert zu setzen funktioniert perfekt. Sobald ein Lichtkreis eingeht, habe ich wieder den Messwert drin. Echt super.

Vielen, vielen Dank. Ohne Deine Hilfe hätte ich es nicht hin bekommen.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

So Shelly4Pro angeschlossen.
Negativ:
Das Teil ist zum Einbau in eine Verteilung, kann aber nicht auf Rollladenbetrieb umgestellt werden.
Es hängt in einer Verteilung, aber man kann alle 4 Kontakte nur einem Raum zuweisen
Das betrifft natürlich nur die Shelly-App oder deren Web-Zugang. Über FHEM interessiert das ja nicht.

Auslesen der Messwerte je Ausgang unterscheidet sich leicht vom Shelly 2, da man beim Shelly4Pro alle 4 Ausgänge einzelnd auslesen kann. Sonst alles wie beim Shelly2

Leistung (hier setzt die sich, anders als beim Shelly2, auch von allein auf 0):

Internals:
   CFGFN     
   CID        shelly4pro-062065
   DEF        shelly4pro-062065
   DEVICETOPIC Flur_Licht_Leistung
   IODev      MQTT2_SERVER
   LASTInputDev MQTT2_SERVER
   MQTT2_SERVER_MSGCNT 13
   MQTT2_SERVER_TIME 2018-12-06 06:52:17
   MSGCNT     13
   NAME       Flur_Licht_Leistung
   NR         968
   STATE      0.00
   TYPE       MQTT2_DEVICE
   READINGS:
     2018-12-06 06:52:17   power           0.00
Attributes:
   IODev      MQTT2_SERVER
   getList    shellies/shelly4pro-062065/relay/0/power power
   readingList shelly4pro_062065:shellies/shelly4pro-062065/relay/0/power:.* power
   room       02_Flur,MQTT2_DEVICE,Messwerte
   stateFormat power



Arbeit:

Internals:
   CFGFN     
   CID        shelly4pro-062065
   DEF        shelly4pro-062065
   DEVICETOPIC Flur_Licht_Energie
   IODev      MQTT2_SERVER
   LASTInputDev MQTT2_SERVER
   MQTT2_SERVER_MSGCNT 4
   MQTT2_SERVER_TIME 2018-12-05 22:47:24
   MSGCNT     4
   NAME       Flur_Licht_Energie
   NR         982
   STATE      1
   TYPE       MQTT2_DEVICE
   READINGS:
     2018-12-05 22:47:24   energy          1
Attributes:
   IODev      MQTT2_SERVER
   getList    shelly4pro_062065:shellies/shelly4pro-062065/relay/0/energy energy
   readingList shelly4pro_062065:shellies/shelly4pro-062065/relay/0/energy:.* energy
   room       Messwerte,02_Flur,MQTT2_DEVICE
   stateFormat energy
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

Zu den MQTT2 Templates, ich weiß nicht wirklich, warum ich die anderen nicht sehe.

(https://uploads.tapatalk-cdn.com/20181206/ab3470a5fbbe483aab9c9514d76d13d3.jpg)


Raspberry Pi 3 B+
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

Beta-User

Es steht jetzt (sortiert) drin, was im standard-template steht. Sieht für mich "normal" aus...

Hattest du die Zeilen aus meinem Post dort eingefügt und (weiß nicht, ob das erforderlich ist) danach FHEM neu gestartet? (update hätte es evtl. wieder gelöscht!)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

miggun

Ähm, ja..ich habe ein Fhem Update und RasPi Update gemacht. Das würde es erklären.
Jetzt guck ich aber mal, ob das noch drin steht.


War wirklich weg. :O

Jetzt wieder drin und siehe da, der Shelly2 ist in der DropDown-Liste.
Klasse, vielen Dank.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

Beta-User

...was mich jetzt eigentlich und vor allem interessieren würde:
Funktioniert das so wie gedacht oder nicht?!?

Kannst ja ggf. den 4-er-Shelly zum Testen nehmen. Dass da dann was fehlt mit power usw. ist klar, geht v.a. um's grundlegende - wenn das steht, darfst du dir überlegen, wie dann das Gesamtpaket für deine 4 Shelly-Typen aussehen müßte ;) .


Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

Wenn ich den shelly2 AttrTemplate Vorschlag richtig verstehe, muss man vorher die automatisch angelegte MQTT2_DEVICE Instanz passend zum Shelly2-MQTT-Namen umbenannt haben.
Lieber waere mir das Setzen dieses Wertes aus dem (hoffentlich) automatisch angelegten readingList per AttrTemplate Parameter:name:shelly2
filter:TYPE=MQTT2_DEVICE
par:SHELLY2;Shelly2 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef }
attr DEVICE setList\
  off:noArg shellies/SHELLY2/relay/0/command off
  on:noArg shellies/SHELLY2/relay/0/command on
...
Weiterhin wuerde ich readingList automatisch anlegen lassen, und nicht explizit spezifizieren (und damit das vorher automatisch Angelegte entfernen)

Die AttrTemplate Dateien kann man auch ohne Neustart einlesen mit
{ AttrTemplate_Initialize() }


Beta-User

@Rudi
Danke für den Schubser, ist natürlich sinnvoll :) !
Da du mitliest, brauchen wir auch keinen neuen Thread, wenn wir denn endlich mal soweit sind...

@miggun
Kannst du den Thread bitte verschieben nach MQTT?
(Beim ersten Beitrag ist ein Knopf dafür)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files