Tasmota auf Shelly

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Mowgli
Beiträge: 27
Registriert: 30. Jan 2019 13:47

Tasmota auf Shelly

Beitrag von Mowgli »

Hallo,


ich bin ein wenig ratlos mit ein paar meiner Shellys. Ich habe diverse Modelle bei mit im Haus laufen. Alle auf aktueller Tasmota Version, Mqtt in Verbindung mit OpenHAB, InfluxDB, Grafana und NodeRed

Alles wunderbar. Bis auf 2 Shellys (1 Shelly 1PM und ein Shelly 2.5) die bei den regelmäßigen Tele Sensor Meldungen den analogen Temperaturwert nicht senden. Jede 2te Meldung fehlt.

Meldung 1 alles Gut

{"Time":"2019-09-23T22:10:56","Switch1":"OFF","ANALOG":{"Temperature":46.0},"ENERGY":{"TotalStartTime":"2019-05-14T17:45:35","Total":6.698,"Yesterday":0.283,"Today":0.157,"Period":1,"Power":36},"TempUnit":"C"}

Die nächste

{"Time":"2019-09-23T22:15:26","ENERGY":{"TotalStartTime":"2019-05-14T17:45:35","Total":6.700,"Yesterday":0.283,"Today":0.160,"Power":64}}

Habe alles mögliche durchprobiert. Keine Idee wo ich noch suchen soll.

Ansonsten verhalten sich beide Geräte normal, schalten ordentlich und die restlichen Werte stimmen auch.
Evtl hat ja einer den Fehler bereits einmal gehabt oder hat eine Idee wo man da noch einstellen kann.


Grüße

Mowgli

Mowgli
Beiträge: 27
Registriert: 30. Jan 2019 13:47

Re: Tasmota auf Shelly

Beitrag von Mowgli »

Hallo,

nach langem suchen die Lösung gefunden. Zauberwort für google war mqtt flood.

Die beiden Shelly hatten eine Funktion eingeschaltet (warum auch immer, ich kannte die nicht) die ständig Änderungen in der Leistungsmessung postet.

Die Funktion heisst PowerDelta

0 = disable reporting on power change
<value> = set reporting on percentage power change to send an MQTT telemetry message

Wenn mal jemand ein vergleichbares Problem hat, einfach mal da nachsehen.

Grüße

Mowgli

Dainara
Beiträge: 6
Registriert: 20. Mär 2020 20:04

Re: Tasmota auf Shelly 1pm, Einrichtung mit MQTT klappt nicht

Beitrag von Dainara »

Huhu,
bin neu im ganzen Thema, hab mir openhab2 auf meinem Debian Server installiert und mir 2 Shelly 1pm gekauft und diese mit Tasmota geflashed,
leider bringe ich die nicht zum laufen mit den Files mqtt.item und mqtt.things

im PaperUI bin ich etwas weiter gekommen, dort kann ich zumindest "an" und "aus" schalten aber mehr auch nicht.

ich probier schon seit 3 Tagen rum, durchforste Google rauf und runter aber dort finde ich nur Shellys mit original fw oder sonoffs mit tasmota

aber was wirklich hilfreiches mit Shellys 1pm mit Tasmota konnte ich nicht finden.
hier meine bisherigen Files

Code: Alles auswählen

Bridge mqtt:broker:MQTT_Broker [ host="localhost", secure=false, username="Dainara", password="Vfr$%tgB" , clientID="myMQTTClient" ]
{
    Thing topic Shelly_DG_Flur_Licht "DG_Licht" {
    Channels:
        Type switch : PowerSwitch                             [ stateTopic="stat/Shelly_DG_Flur_Licht/POWER toggle" , transformationPattern="JSONPATH:$.POWER" , commandTopic="cmnd/Shelly_DG_Flur_Licht/POWER", on="ON", off="OFF" ]
        Type string : Version           "Tasmota Version"     [ stateTopic="stat/Shelly_DG_Flur_Licht/STATUS", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type string : Temperature       "Temperature"         [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR", transformationPattern="JSONPATH:$.ANALOG.Temperature"]
        Type number : Leistung          "Energie Leistung"    [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power" ]
        Type number : Spannung          "Energie Spannung"    [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage" ]
        Type number : Strom             "Energie Strom"       [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
        Type number : Heute             "Energie Heute"       [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today" ]
        Type number : Gestern           "Energie Gestern"     [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday" ]
        Type number : Insgedsamt        "Energie insgesamt"   [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]

      }
}

Code: Alles auswählen

// Shelly Tasmota //

Switch Shelly_DG_Flur_Licht "DG Flur Licht"                      { mqtt=">[MQTT_Broker:cmnd/Shelly_DG_Flur_Licht/power:on],                      <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/POWER:state:default]" }
Number Shelly_DG_Flur_Licht_V "Tasmota Version [%.1f V]"         { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.StatusFRW.Version)],   <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusFRW.Version)]" }
Number Shelly_DG_Flur_Licht_T "Temperatur [%.1f °C]"             { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.ANALOG.Temperature)],  <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusSNS.ANALOG.Temperature)]" }
Number Shelly_DG_Flur_Licht_P "Leistung [%.1f W]"                { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.ENERGY.Power)],        <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusSNS.ENERGY.Power)]" }
Number Shelly_DG_Flur_Licht_W "Spannung [%.1f V]"                { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.ENERGY.Voltage)],      <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusSNS.ENERGY.Voltage)]" }
Number Shelly_DG_Flur_Licht_I "Strom [%.1f A]"                   { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.ENERGY.Current)],      <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusSNS.ENERGY.Current)]" }
Number Shelly_DG_Flur_Licht_E "Energie heute [%.1f kWh]"         { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.ENERGY.Today)],        <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusSNS.ENERGY.Today)]" }
Number Shelly_DG_Flur_Licht_Y "Energie gestern [%.1f kWh]"       { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.ENERGY.Yesterday)],    <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusSNS.ENERGY.Yesterday)]" }
Number Shelly_DG_Flur_Licht_ET "Energie insgesamt [%.1f kWh]"    { mqtt="<[MQTT_Broker:tele/Shelly_DG_Flur_Licht/SENSOR:state:JSONPATH($.ENERGY.Total)],        <[MQTT_Broker:stat/Shelly_DG_Flur_Licht/STATUS8:state:JSONPATH(StatusSNS.ENERGY.Total)]" }

ich hoffe jemand kann mir helfen, ich verstehe das auch mit den JSONS nicht, das funktionieren auch nicht

Danke schonmal im voraus
BB
Dainara

03chris
Beiträge: 28
Registriert: 4. Feb 2018 17:10
Answers: 1

Re: Tasmota auf Shelly

Beitrag von 03chris »

Hallo Dainara,
Du hast MQTT 2 installiert, verwendest aber Items, die aus MQTT 1 stammen.
Deine Items müssen entsprechend der MQTT-Version konfiguriert werden:

Code: Alles auswählen

Switch     Shelly_DG_Flur_Licht         "DG Flur Licht"                         { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht:PowerSwitch"}
String     Shelly_DG_Flur_Licht_V      "Tasmota Version [%s]"               { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht:Version"}
Und Item type muss auch mit dem channel type übereinstimmen:

Type string:...... verlangt ein String Item
Type number..... verlangt Number oder Dimmer Item EDIT: für Dimmer-Item muss auch dimmer channel konfiguriert werden

Für Temperatur würde ich ein number anstatt string channel hernehmen, da Weiterverwendung unkomplizierter ist.

Dainara
Beiträge: 6
Registriert: 20. Mär 2020 20:04

Re: Tasmota auf Shelly

Beitrag von Dainara »

Hallo 03chris,

vielen lieben Dank, habs nun nach langem herum probieren geschafft dank deiner Hilfestellung :)
ich glaube ich hätte das nie hin bekommen,

ein Problem hab ich noch wo ich keine Lösung bisher gefunden habe, wenn ich über das Basic UI oder über die Handyapp das Licht z.B. an sachalten möchte, geht es an und kurz darauf wider aus, dann muss ich 4x den Button clicken bis es dann wider an geht und auch an bleibt,
das selbe szenario hab ich beim ausschalten, aktuelle Tasmota version die ich drauf habe ist 8.2.0

meine Files sehen nun so aus: (Spannung, Strom und Version kann ich scheinbar nicht auslesen, kann wohl das shelly 1pm mit der Tasmota nicht)
mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:MQTT_Broker [ host="localhost", secure=false, username="user", password="passwd" , clientID="045df4fcf47c4bcdb29de03a61518fd3" ]
{
    Thing topic Shelly_DG_Flur_Licht_Thing "DG_Flur_Licht" {
    Channels:
        Type switch : PowerSwitch                             [ stateTopic="state/Shelly_DG_Flur_Licht/POWER" , transformationPattern="JSONPATH:$.POWER" , commandTopic="cmnd/Shelly_DG_Flur_Licht/POWER", on="ON", off="OFF" ]
        Type number : Version           "Version "            [ stateTopic="Shelly_DG_Flur_Licht/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type number : Temperature       "Temperatur Shelly"   [ stateTopic="Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ANALOG.Temperature"]
        Type number : Leistung          "Energie Leistung"    [ stateTopic="Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Power" ]
        Type number : Total             "Energie insgesamt"   [ stateTopic="Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Total" ]
        Type number : Spannung          "Energie Spannung"    [ stateTopic="Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Voltage" ]
        Type number : Strom             "Energie Strom"       [ stateTopic="Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Current" ]
        Type number : Heute             "Energie Heute"       [ stateTopic="Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Today" ]
        Type number : Gestern           "Energie Gestern"     [ stateTopic="Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Yesterday" ]

      }
}
mqtt.items

Code: Alles auswählen

// Shelly Tasmota //

Switch Shelly_DG_Flur_Licht      "DG Flur Licht"                 { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:PowerSwitch" }
Number Shelly_DG_Flur_Licht_V    "Version [%s V]"                { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht:Thing:Power" }
Number Shelly_DG_Flur_Licht_T    "Temperatur Shelly [%s °C]"     { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Temperature" }
Number Shelly_DG_Flur_Licht_P    "Leistung [%s W]"               { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Leistung" }
Number Shelly_DG_Flur_Licht_ET   "Energie insgesamt [%s kWh]"    { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Total" }
Number Shelly_DG_Flur_Licht_W    "Spannung [%s V]"               { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Spannung" }
Number Shelly_DG_Flur_Licht_I    "Strom [%s A]"                  { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Strom" }
Number Shelly_DG_Flur_Licht_E    "Energie heute [%s kWh]"        { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Heute" }
Number Shelly_DG_Flur_Licht_Y    "Energie gestern [%s kWh]"      { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Gestern" }

shelly.rules

Code: Alles auswählen

// Work with a list of selected Shelly modules
val shelly_device_ids = newArrayList(
    "Shelly_DG_Flur_Licht",
    //… add all your modules here!
    "Shelly_DG_Flur_Licht"
)
// OR
// Work with the grouptopic, addressing ALL modules at once
//val shelly_device_ids = newArrayList("shellys")

rule "Shelly Maintenance"
when
    Item Shelly_Action received command
then
    logInfo("shelly.rules", "Shelly Maintenance on all devices: " + receivedCommand)
    val actionsBroker = getActions("mqtt","mqtt:broker:MyMQTT_Broker") // change to your broker name!
    for (String device_id : shelly_device_ids) {
        switch (receivedCommand) {
            case "restart" :
                actionsBroker.publishMQTT( "cmnd/" + device_id + "/restart", "1")
            case "queryFW" :
                actionsBroker.publishMQTT( "cmnd/" + device_id + "/status", "2")
            case "upgrade" : {
                actionsBroker.publishMQTT( "cmnd/" + device_id + "/otaurl", "http://thehackbox.org/tasmota/release/tasmota-DE.bin")  // Replace with your preferred build
                actionsBroker.publishMQTT( "cmnd/" + device_id + "/upgrade", "1")
            }
        }
    }
    Shelly_Action.postUpdate(NULL)
end


03chris
Beiträge: 28
Registriert: 4. Feb 2018 17:10
Answers: 1

Re: Tasmota auf Shelly

Beitrag von 03chris »

man muss sehen, was gesendet wird, um die Things richtig einstellen zu können. Das kann man entweder mit einem Programm wie z.B. MQTT.fx oder auch direkt aus der Konsole deines Gerätes (IP-Adresse in Brouser eingeben --> Konsole) auslesen.
So sieht es in der Konsole eines Sonoff POW aus:

Code: Alles auswählen

01:32:20 MQT: tele/sonoff/Keller/Heizung/Heizkessel/INFO1 = {"Module":"Sonoff Pow R2","Version":"8.2.0(tasmota)","FallbackTopic":"cmnd/DVES_668F1B_fb/","GroupTopic":"cmnd/sonoffs/"}
Wenn ich daraus die Tasmota Version auslesen möchte, muss ich meine .things Datei wie folgt konfigurieren:

Code: Alles auswählen

Type string  [ stateTopic="tele/sonoff/Keller/Heizung/Heizkessel/INFO1", transformationPattern="JSONPATH:$.Version"]
zurückgegeben wird "8.2.0(tasmota)" (kein number, sondern string channel)

Dein PowerSwitch stateTopic scheint auch nicht ganz korrekt zu sein. Mein Sonoff sendet folgendes:

Code: Alles auswählen

01:32:20 MQT: stat/sonoff/Keller/Heizung/Heizkessel/RESULT = {"POWER":"OFF"}
und in meiner .thing Datei steht dann:

Code: Alles auswählen

Type switch : Schalter                             [ stateTopic="stat/sonoff/Keller/Heizung/Heizkessel/RESULT" , transformationPattern="JSONPATH:$.POWER" , commandTopic="cmnd/sonoff/Keller/Heizung/Heizkessel/POWER", on="ON", off="OFF" ]
Ich hab hier deine .things Datei anhand von Daten, die ein Sonoff sendet korrigiert, bin aber nicht so ganz sicher, dass die Topics von Schelly mit den von Sonoff zu 100% identisch sind (vor allem was die Temperatur angeht, dieswegen hab ich es nicht geändert).

Code: Alles auswählen

Bridge mqtt:broker:MQTT_Broker [ host="localhost", secure=false, username="user", password="passwd" , clientID="045df4fcf47c4bcdb29de03a61518fd3" ]
{
    Thing topic Shelly_DG_Flur_Licht_Thing "DG_Flur_Licht" {
    Channels:
        Type switch : PowerSwitch                             [ stateTopic="stat/Shelly_DG_Flur_Licht/RESULT" , transformationPattern="JSONPATH:$.POWER" , commandTopic="cmnd/Shelly_DG_Flur_Licht/POWER", on="ON", off="OFF" ]
        Type string: Version           "Version "            [ stateTopic="tele/Shelly_DG_Flur_Licht/INFO1", transformationPattern="JSONPATH:$.Version"]
        Type number : Temperature       "Temperatur Shelly"   [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ANALOG.Temperature"]
        Type number : Leistung          "Energie Leistung"    [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Power" ]
        Type number : Total             "Energie insgesamt"   [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Total" ]
        Type number : Spannung          "Energie Spannung"    [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Voltage" ]
        Type number : Strom             "Energie Strom"       [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Current" ]
        Type number : Heute             "Energie Heute"       [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Today" ]
        Type number : Gestern           "Energie Gestern"     [ stateTopic="tele/Shelly_DG_Flur_Licht/SENSOR",  transformationPattern="JSONPATH:$.ENERGY.Yesterday" ]

      }
}
Deine Items sehen gut aus, nur Shelly_DG_Flur_Licht_V sollte als String konfiguriert werden und sein channel ist etwas fehlerhaft

Code: Alles auswählen

String  Shelly_DG_Flur_Licht_V    "Version [%s V]"                { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Version" }

Dainara
Beiträge: 6
Registriert: 20. Mär 2020 20:04

Re: Tasmota auf Shelly

Beitrag von Dainara »

Huhu,
vielen Dank, das mit RESULT vom Schalter hab ich gesehen und gehändert, ich nutze ständig die Konsole vom Shelly, was ich dort sehe ist dass der Inhalt der Konsole häufig nach einert Aktion scheinbar rebootet, das ist immer dann wenn es nicht das macht was es soll.
gestern habe ich auch folgende Meldung erhalten

Code: Alles auswählen

00:00:00 WIF: verbinden mit AP1 WlanBase in Modus 11N als Shelly_DG_Flur_Licht-0073...
00:00:05 WIF: verbunden
00:00:05 HTP: Web-Server aktiv bei Shelly_DG_Flur_Licht-0073 mit IP-Adresse 192.168.0.100
00:07:17 MQT: Verbindungsversuch...
00:07:17 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.0.200:1883, rc 3. Wiederversuch in 10 s
00:07:28 MQT: Verbindungsversuch...
00:07:28 MQT: verbunden
00:07:28 MQT: tele/Shelly_DG_Flur_Licht/LWT = Online (beibehalten)
ich vermute ein Netzwerkproblem, ich bin mir sogar fast sicher dass es der Switch ist da sich der vor 2 tagen total aufgehängt hat, ein neuer wird bald bestellt, dann denke ich auch mal dass das Problem weg sein sollte.

wegen der Version,

Code: Alles auswählen

        Type number : Version           "Version "            [ stateTopic="Shelly_DG_Flur_Licht/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
das ist so richtig, nur wird diese Info automatiach nicht ausgelesen, ich muss in der Shelly Konsole folgendes eingeben

Code: Alles auswählen

status 2

Code: Alles auswählen

09:48:07 MQT: stat/Shelly_DG_Flur_Licht/STATUS2 = {"StatusFWR":{"Version":"8.2.0(tasmota)","BuildDateTime":"2020.03.20 14:54:51","Boot":31,"Core":"STAGE","SDK":"2.2.2-dev(38a443e)","Hardware":"ESP8266EX","CR":"506/699"}}
dann erhalte ich die nötigen Infos, mit 0 erhalte ich alle Status meldungen aber eben nur dann wenn ich es manuell eingebe, dann werden die daten auch übergeben, so konnte ich auch die IP adresse anzeigen und speichern lassen, aber eben nur wenn ich das manuell abfrage.

ich werd mal schauen ob ich irgendwie sowas beim Linux server im cron ein script einbinden kann der das 1 am tag sendet oder geht sowas auch mit openhab?

Benutzeravatar
peter-pan
Beiträge: 2568
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Tasmota auf Shelly

Beitrag von peter-pan »

Dainara hat geschrieben: 22. Mär 2020 10:01 ich vermute ein Netzwerkproblem
...zu deinem Verbindungsproblem kannst du mal hier schauen, ob da vielleicht ein Repeater/Acces-Point mit reinspielt, obwohl ich damit keine Probleme habe.

Bist du sicher, dass deine Einstellungen in Tasmota richtig sind ? z.B. die Host-Adresse in den MQTT-Einstellungen.

Die Syntax deines Items Version war auch nicht ganz richtig. @03chris hat dir zwar die richtigen Einstellungen geschickt, aber hast du die auch so übernommen ? Neben Typ-Änderung, war auch die Channel-Einstellung nicht ganz korrekt.
Dein Item:

Code: Alles auswählen

Number Shelly_DG_Flur_Licht_V "Version [%s V]"  { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht:Thing:Power" }
das Item von 03chris:

Code: Alles auswählen

String  Shelly_DG_Flur_Licht_V  "Version [%s V]"  { channel="mqtt:topic:MQTT_Broker:Shelly_DG_Flur_Licht_Thing:Version" }
;)

Bei mir klappt der Rest ganz gut, deshalb hier mal meine Einstellungen:

.things (nur für einen POW)

Code: Alles auswählen

// Sonoff POW Switches (pow 1 + pow 2)
    Thing topic pow02 "Sonoff Pow 02 Stehlampe Wohnzimmer"        @ "MQTT2" {
    Channels:
        Type switch : power     "Power"                  [ stateTopic="stat/pow_02/POWER", commandTopic="cmnd/pow_02/POWER" ]
        Type number : rssi      "WiFi Signal Strength"   [ stateTopic="tele/pow_02/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version   "Firmware Version    "   [ stateTopic="stat/pow_02/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch : reachable "Reachable"              [ stateTopic="tele/pow_02/LWT",transformationPattern="MAP:reachable.map" ]
        Type number : powerload "Power load"             [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
        Type number : voltage   "Line voltage"           [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
        Type number : current   "Line current"           [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
        Type number : total     "Total energy "          [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total"]
        Type number : totalday  "Total energy today"     [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
        Type number : totalyest "Total energy yesterday" [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
        Type string : ssid      "WiFi"                   [ stateTopic="tele/pow_02/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
        Type datetime : time    "Time"                   [ stateTopic="tele/pow_02/STATE", transformationPattern="JSONPATH:$.Time"]
        Type string : hardware  "Chip Set            "   [ stateTopic="stat/pow_02/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress "IP Address          "   [ stateTopic="stat/pow_02/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
    }
Ich weiss aber nicht, ob meine "Switch/Power-Einstellungen" zu deinem Shelly passen, da ich keinen Shelly habe.
und die .items dazu:

Code: Alles auswählen

/**********************************************************************************************************************************************************************************************************************
//POW Sensoren
//**********************************************************************************************************************************************************************************************************************
//192.168.178.xxx                            Stehlampe pow_02
Switch    Sonoff_Pow_02                  "Stehlampe [MAP(de.map):%s]"                      <standard_lamp>         (EG_Wohnen,gSonoff,gLight)    { channel="mqtt:topic:hans:pow02:power"}
Number    Sonoff_Pow_02_RSSI             "Stehlampe RSSI [%s]"                             <qualityofservice>      (EG_Wohnen,gRSSI)             { channel="mqtt:topic:hans:pow02:rssi" } 
String    Sonoff_Pow_02_Version          "Stehlampe Version 46[%s]"                        <sonoff_pow>            (gSonoffs,gVer)               { channel="mqtt:topic:hans:pow02:version" } 
Switch    Sonoff_Pow_02_Unreach          "Stehlampe Ereichbarkeit [%s]"                    <siren1>                (EG_Wohnen,gLWT)              { channel="mqtt:topic:hans:pow02:reachable" }
String    Sonoff_Pow_02_Hardware         "Stehlampe Hardware 46[%s]"                       <sonoff_pow>            (gSonoffs,gHard)              { channel="mqtt:topic:hans:pow02:hardware" } 
String    Sonoff_Pow_02_IPAddress        "Stehlampe IP-Address [%s]"                       <sonoff_pow>            (gSonoffs,gHard)              { channel="mqtt:topic:hans:pow02:ipaddress" } 
Number    Sonoff_Pow_02_Verbrauch        "Stehlampe Verbrauch Total[%.2f kWh]"             <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:total" }   
//*       For Fun and Test            
Number    Sonoff_Pow_02_VerbrauchHeute   "Stehlampe Verbrauch Heute[%.2f kWh]"             <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:totalday" }   
Number    Sonoff_Pow_02_VerbrauchGestern "Stehlampe Verbrauch Gestern[%.2f kWh]"           <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:totalyest" }   
Number    Sonoff_Pow_02_Strom            "Stehlampe Stromaufnahme [%.2f A]"                <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:current" }  
Number    Sonoff_Pow_02_Spannung         "Stehlampe Spannung[%.2f Volt]"                   <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:voltage" }    
Number    Sonoff_Pow_02_Leisung          "Stehlampe Leistung[%.2f W]"                      <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:powerload" }  
String    Sonoff_Pow_02_SSID             "Stehlampe Wlan [%s]"                             <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:ssid" }         
DateTime  Sonoff_Pow_02_Date             "Stehlampe Refresh [%1$tH:%1$tM]"                 <standard_lamp>         (gSonoffs)                    { channel="mqtt:topic:hans:pow02:time" }         
und das ganze sieht dann in der Sitemap so aus:
pow.jpg
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Dainara
Beiträge: 6
Registriert: 20. Mär 2020 20:04

Re: Tasmota auf Shelly

Beitrag von Dainara »

Huhu und danke für Eure Antworten,

Ja es hängt ein Fritz repeater dazwischen und es kann nur am Netzwerk liegen da ich im Keller einen weiteren Shelly installiert hab und dieser hängt per Wlan direkt an der Fritzbox und funktioniert tadellos.
Hab mir auch schon einen neuen Switch bestellt.

die Hostadresse im Tasmota sind korrekt.

die Syntak hatte ich auch schon korrigiert.

Ich hab ausserdem beim Logging dier Telemetrieperiode von 300 auf 30 gestellt damit die Anzeige im openhab zeitnah aktualisiert wird wenn ich das Licht ein oder ausschalte. wäre natürlich toll wenn das instand passieren würde, aber ich denke wenn ich die Periode noch niederiger stelle wird der Server einfach nur geflootet

Ich hab derzeit noch ein paar andere Problemchen, evtl hab ich irgendwo eine Einstellung vergessen oder so, wenn ich openHAB neu starte sind alle Werte weg, ich dachte dass die in einer Datenbank etc. gespeichert sind oder werden, scheint aber nicht so zu sein, muss dann erst warten bis wider alle Telemetriedaten bzw Statusmeldungen übertragen wurden.

hab da noch ne Frage, evtl weis das jemand ob das geht und zwar hab ich im Treppenhaus ein Treppenhausautomat, dieser hat folgende Funktionen:
Schaltet sich nach 5 minuten aus, die Einstellung hab ich im Helly gefunden "Pulstime" und funktioniert einwandfrei.
das Treppenhaus Relai hat ausserdem folgende Funktion, 30 Sekunden bevorf die 5 Minuten abgelaufen ist blinkt das Licht ganz kurz und das alle 10 Sekunden, so weis man dass das Licht gleich aus geht und man kann nachtasten.
ist das mit einem Shelly auch realisierbar? oder kann man den Shelly mit dem Trepenhausautomat koppeln?

danke schonmal im vorraus

BB
Dainara

Benutzeravatar
udo1toni
Beiträge: 13944
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Tasmota auf Shelly

Beitrag von udo1toni »

Dainara hat geschrieben: 24. Mär 2020 20:51 Ich hab derzeit noch ein paar andere Problemchen, evtl hab ich irgendwo eine Einstellung vergessen oder so, wenn ich openHAB neu starte sind alle Werte weg,
Du müsstest dazu eine Persistence einrichten. Mit der Strategie restoreOnStartup werden die Status der betreffenden Items beim Start wiederhergestellt. Allerdings sind diese Werte zwangsläufig inaktuell.
das Treppenhaus Relai hat ausserdem folgende Funktion, 30 Sekunden bevorf die 5 Minuten abgelaufen ist blinkt das Licht ganz kurz und das alle 10 Sekunden, so weis man dass das Licht gleich aus geht und man kann nachtasten.
ist das mit einem Shelly auch realisierbar? oder kann man den Shelly mit dem Trepenhausautomat koppeln?
Nein, das ist so nicht vorgesehen. Natürich könntest Du den Shally benutzen, um den Treppenhausautoamten anzusteuern, aber wozu dann überhaupt den Shelly?

Was aber sehr wohl geht, ist, dass Du die Steuerung der Automatik openHAB überlässt.
Du kannst den Shelly so konfigurieren, dass der Eingang (an dem hängen ja die normalen Lichtschalter) unabhängig vom Ausgang arbeitet. Nun kannst Du in openHAB eine Regel definieren, die bei Tastendruck das Licht einschaltet und kurz vor Ablauf der Zeit ein paar mal kurz ausschaltet, ganz so wie der vorhandene Automat.
Der Witz ist, dass Du nun frei in der Programmierung bist. z.B.:
  • einfacher Druck -> 3 Minuten Licht
  • zweimal kurz hintereinander -> 6 Minuten Licht
  • dreimal kurz hintereinander -> 15 Minuten Licht
  • Taste mehr als 5 Sekunden gedrückt halten -> Dauerlicht
  • Langer Tastendruck während Licht an ist -> Licht sofort aus
Großer Nachteil: sobald openHAB nicht läuft, funktioniert auch das Licht nicht mehr, da ja der Tastendruck vom Ausgang entkoppelt ist. Falls der Shelly mit Tasmota geflasht ist, könnte man evtl. mit Tasmota Rules etwas erreichen (auch das Blinken vor dem Ausschalten). Da kann ich allerdings nicht helfen, mit Tasmota Rules habe ich mich bisher nicht beschäftigt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten