Dimmer mit MQTT in FHEM einbinden

  • Hallo Bohald , willkommen im Forum. :)

    ...

    bis auf das dimmen über fhem.


    Vielleicht kann da ja noch jemand weiter helfen?

    Hab' mal nach FHEM verschoben. ;)


    Das wird schon. :thumbup:

  • Hey... ist dein FHEM aktuell? Der Dimmer wurde erst vor kurzem hinzugefügt. Hat aber PCT Einstellungen und sollte somit auch laufen.


    Kannst du mal ein list deines Gerätes senden?


    Da ich keinen Shelly Dimmer habe, kann ich nicht testen. Aber ich kann dir sicher helfen, wenn du einfach testest.


    Das ist das aktuelle Template:


    Mit dem List deines Gerätes kommen wir aber schon mal weiter :)

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung. Sogar SmartHome Partys, könnt Ihr bei mir vereinbaren:thumbup: Bei Fragen, einfach via PN melden :thumbup:

  • Hallo, mein FHEM ist aktuell. Ich wieß gerade nicht was du genau von mir brauchst. List meines Dimmers? Keine Ahnung. Bin noch nicht so weit mit FHEM. Ich kann bis jetzt halt nur ein und ausschalten und bekomme den Status On Off angezeigt. Komme noch nicht damit klar wie ich JSON auslese und einzeln anzeigen kann. Ich nutze MQTT und noch kein MQTT2.

  • shellies/shellydimmer-<deviceid>/light/0/command on

    shellies/shellydimmer-<deviceid>/light/0/command off

    und

    shellies/shellydimmer-<deviceid>/light/0/set <v>

    Wobei <v> dein Wert für brightness von 0-100 ist.


    In der Loxone muss ich die Befehle trennen (zumindest bei der Bulb) sonst verschluckt sich da was.

  • gib in der Zeile oben in deinem Fhem einfach mal

    list HIER_DER_GERÄTENAME

    ein.


    Danach kommt ca. sowas rauß (Beispiel mit einem Shelly 2.5, nicht wundern):


    Daran kann ich dann sehen, was bei dir nicht ok ist.


    Es macht absolut Sinn auf MQTT2 um zu stellen. Danach hast du keine Probleme mehr ;)

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung. Sogar SmartHome Partys, könnt Ihr bei mir vereinbaren:thumbup: Bei Fragen, einfach via PN melden :thumbup:

  • Danke für die Infos. Mit MQTT2 habe ich jetzt alles am rennen :)

    Was ich noch nicht rausgefunden habe ist, wie ich autocreate anwenden kann.


    Problem:

    Das einzige was noch nicht geht ist, dass pct den gelesenen Wert aus brightness übernimmt und anzeigt. pct stellt sich nach Einstellen immer wieder auf "0".


    Dafür noch ne Idee?

  • Hey,


    zuerstmal... Autocreate im Gerät kann gelöscht werden. autocreate muss global an. Danach kommen die neuen Geräte automatisch im Raum MQTT2_Devices.


    event-on-change bitte zuerst IMMER weg lassen oder .* rein schreiben. Du erzeugst nur Events über state.


    Dein List, sieht für mich auch nicht aus, als hättest du das original Template ausgewählt.


    Normal geht das so:

    1. autocreate in FHEM aktivieren (nicht im Gerät selber).

    2. Gerät wird erstellt und im Raum MQTT2_Devices (oder so) angezeigt.

    3. In das neue Gerät hinein gehen und set attr Template und das entsprechende auswählen (in deinem Fall shellydimmer).

    4. Spaß haben und sich daran erfreuen das alles geht :)


    Zusatz Info: Nachdem das Template gewählt wurde, einmal set DEVICE x_mqttcom announce senden oder aber den Shelly einmal neustarten.


    Wenn du das alles mal durch gespielt hast (ca. 5min Aufwand), dann sende mal ein neues list .... Vermutlich ist dein Thema aber dann schon behoben. Würde das nur gerne für die Vollständigkeit haben :)


    PS: [Anleitung] - Shelly mit FHEM und MQTT2



    Aktuelles Template, weswegen ich glaube, dass du da nicht ganz original bist....

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung. Sogar SmartHome Partys, könnt Ihr bei mir vereinbaren:thumbup: Bei Fragen, einfach via PN melden :thumbup:

    Edited once, last by 87insane ().

  • Wenn du das alles gemacht hast, sende ich dir die Zeile, die du noch brauchst :)

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung. Sogar SmartHome Partys, könnt Ihr bei mir vereinbaren:thumbup: Bei Fragen, einfach via PN melden :thumbup:

  • Code
    1. Internals: CFGFN ./FHEM/sonoff.cfg CID shellydimmer-DB3883 DEF shellydimmer-DB3883 DEVICETOPIC MQTT2_shellydimmer_DB3883 FUUID 5ddbc578-f33f-d110-59d2-e88130590111d4b4 IODev MQTT2 LASTInputDev MQTT2 MQTT2_MSGCNT 48 MQTT2_TIME 2019-11-25 13:53:15 MSGCNT 48 NAME MQTT2_shellydimmer_DB3883 NR 682 STATE off TYPE MQTT2_DEVICE READINGS: 2019-11-25 13:24:48 associatedWith MQTT2_GeneralBridge 2019-11-25 13:53:15 brightness 30 2019-11-25 13:53:15 ison false 2019-11-25 13:25:08 light_0 off 2019-11-25 13:25:08 light_0_command off 2019-11-25 13:53:15 loaderror 0 2019-11-25 13:53:15 mode white 2019-11-25 13:53:15 overload 0 2019-11-25 13:53:15 overtemperature 0 2019-11-25 13:25:08 state off 2019-11-25 13:53:15 temperature 36.59 2019-11-25 13:53:15 temperature_f 97.87 2019-11-25 13:25:04 turn on
    2. Attributes: IODev MQTT2 alexaName Wandleuchten alexaRoom Wohnzimmer alias Wandleuchten devStateIcon {my $lderr = ReadingsVal($name,"loaderror","true") eq "true"?"10px-kreis-rot":"10px-kreis-gruen";; my $light = ReadingsVal($name,"ison","false") eq "true"?"on":"off";; my $cons = ReadingsVal($name,"light_0_power","unknown");; FW_makeImage($lderr)."<a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Leistung: $cons</div>"} icon light_wall_2 model shellydimmer readingList shellies/shellydimmer-DB3883/light/0/status:.* {json2nameValue($EVENT)} shellies/shellydimmer-DB3883/temperature:.* temperature shellies/shellydimmer-DB3883/temperature_f:.* temperature_f shellies/shellydimmer-DB3883/overtemperature:.* overtemperature shellies/shellydimmer-DB3883/overload:.* overload shellies/shellydimmer-DB3883/loaderror:.* loaderror shellies/announce:.* { $EVENT =~ m,..id...shellydimmer-DB3883...mac.*, ? json2nameValue($EVENT) : undef }
    3. shellies/shellydimmer-DB3883/light/0/set:.* { json2nameValue($EVENT) }
    4. shellies/shellydimmer-DB3883/light/0:.* light_0
    5. shellies/shellydimmer-DB3883/light/0/command:.* light_0_command room HomeKit,Sonoff,Wohnzimmer,alexa setList off:noArg shellies/shellydimmer-DB3883/light/0/command off on:noArg shellies/shellydimmer-DB3883/light/0/command on pct:slider,0,1,100 shellies/shellydimmer-DB3883/light/0/set {"turn": "on","brightness": $EVTPART1} webCmd pct:on:off
  • Da ich selber keinen Shelly Dimmer habe, kenne ich den json output leider nicht. Kann also nur raten. Wenn dem so ist wie ich denke, dann muss du in deiner readinslist noch folgendes einfügen:


    shellies/shellydimmer-DB36B4/light/0/brightness:.* pct


    Sollte am Ende also so aussehen:

    shellies/shellydimmer-DB3883/light/0/status:.* {json2nameValue($EVENT)}

    shellies/shellydimmer-DB36B4/light/0/brightness:.* pct

    shellies/shellydimmer-DB3883/temperature:.* temperature

    shellies/shellydimmer-DB3883/temperature_f:.* temperature_f

    shellies/shellydimmer-DB3883/overtemperature:.* overtemperature

    shellies/shellydimmer-DB3883/overload:.* overload

    shellies/shellydimmer-DB3883/loaderror:.* loaderror

    shellies/announce:.* { $EVENT =~ m,..id...shellydimmer-DB3883...mac.*, ? json2nameValue($EVENT) : undef }

    shellies/shellydimmer-DB3883/light/0/set:.* { json2nameValue($EVENT) }

    shellies/shellydimmer-DB3883/light/0:.* light_0

    shellies/shellydimmer-DB3883/light/0/command:.* light_0_command


    Am besten wäre es natürlich wenn du ggf. mal den kompletten json String senden kannst. Im Netz habe ich leider keinen kompletten String gefunden. Du kannst dafür z.B. den MQTT Explorer nutzen. Da sieht man sehr schnell wo genau der Wert her kommt und wie dieser ausgefiltert werden muss. Wenn du das ggf. mal prüfen kannst, kann ich dir was bauen. Habe bei uns, im FHEM Forum, auch bereits die Kollegen aufmerksam gemacht, dass dieses Template nicht komplett laufen kann.


    Wie oben schon gesagt, kann ich das leider nicht testen. Hier kannst du aber Ergebnisse liefern :) Kann sogar sein, das es so wie oben angegeben schon klappt.


    Bin gespannt. Geht nur darum die Werte aus zu filtern und für dich in einem 1-100 Wert um zu wandeln, da du ja gern den PCT Balken nutzen magst. Da ich sehe, dass du auch Alexa nutzt, macht das auch Sinn. So kann die liebe Alexa das auch direkt steuern.

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung. Sogar SmartHome Partys, könnt Ihr bei mir vereinbaren:thumbup: Bei Fragen, einfach via PN melden :thumbup:

  • hallo,


    ich würde mich mal dranhängen. ich benutze kein mqtt2 sondern einen "normalen" externen mqtt broker in einem Docker Container.


    Wie setze ich ein korrektes publishSet, damit die Dimmung funktioniert und auch die Statusaktualisierung des pct (habe schonmal ein expand json hinterlegt, somit ist in den readings brightness enthalten). Bisher habe ich nur mal on/off hinterlegt, wie ich das von den anderen shellies kenne. Oder bin ich hier völlig auf dem Holzweg?


    hier mal ein list:


    Danke schonmal im Voraus


    Gruß
    Chrizza

  • Ich habe es jetzt mit dem MQTT2_Client Device hinbekommen. Mittels Bridge und autocreate hat das dann doch sehr komfortabel funktioniert mit allen Shelly Devices. Hier und dort musste man noch ein paar Dinge anpassen, bspw. beim Shelly 2.5 im Relay Mode wurde energy beim 2. Relay versucht vom reading des Relay 1 zu holen.


    Beim Dimmer habe ich noch die Temp und die Url (ip verlinkung auf den grünen punkt) hinzugefügt (kopiert von Shelly 2.5).


    Leider habe ich bisher noch das selbe Problem wie Bohald. Der slider beim Dimmer wird nicht auf den Brightness Wert gestellt. Ich nehme an, dass man hier noch das Brightness Reading irgendwie auf PCT mappen muss.


    Wer weiß wie es geht? :-)


    Damit geht es bei mir nicht:

    shellies/shellydimmer-DB36B4/light/0/brightness:.* pct


    Vielen Dank un schönen ersten Advent!


    Gruß
    Chrizza