Seite 6 von 9

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 6. Mai 2019 19:36
von winni
Hallo,

das wäre auch ganz in meinem Interesse. Eine Erklärung dazu fände ich super!

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 6. Mai 2019 22:01
von PeterA
Hier habe ich etwas gefunden, wo das doch Recht gut erklärt wird:
https://www.openhab.org/blog/2018-12-1 ... cture.html

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 8. Mai 2019 09:29
von PeterA
HI,

weiter gehts mit den Fragen :)

hier mein mqtt.things:

Code: Alles auswählen

Bridge mqtt:broker:3448a27a [ host="localhost", secure=false ]
{
    Thing mqtt:topic:de07756d "Rolladen Flur" @ "DG" {
    Channels:
        Type rollershutter : Shelly2501Rollershutter "RolladenDGFlur" [ stateTopic="shellies/shellyswitch25-745118/roller/0", commandTopic="shellies/shellyswitch25-745118/roller/0/pos" , transformationPattern="MAP:shelly.map" ]
        Type number: Shelly2501Temperature "Shelly2501temp" [ stateTopic="shellies/shellyswitch25-745118/temperature" ]
        Type number: Shelly2501energy "Shelly2501energy" [ stateTopic="shellies/shellyswitch25-745118/relay/energy" ]
    }
}
Wenn ich das nach einer Änderung speichere kommt das im Log:

Code: Alles auswählen

[INFO ] [el.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'mqtt.things', using it anyway:

Provide a thing type ID and a thing ID in this format:

 <thingTypeId> <thingId>
Was bedeutet die Meldung im log ?

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 8. Mai 2019 23:09
von udo1toni
Ja, das ganze ist ein Mischmasch ;)

Korrekt ist es so:

Code: Alles auswählen

Bridge mqtt:broker:3448a27a [ host="localhost", secure=false ]
{
    Thing topic de07756d "Rolladen Flur" @ "DG" {
    Channels:
        Type rollershutter : Shelly2501Rollershutter "RolladenDGFlur"   [ stateTopic="shellies/shellyswitch25-745118/roller/0", commandTopic="shellies/shellyswitch25-745118/roller/0/pos", transformationPattern="MAP:shelly.map" ]
        Type        number : Shelly2501Temperature   "Shelly2501temp"   [ stateTopic="shellies/shellyswitch25-745118/temperature" ]
        Type        number : Shelly2501energy        "Shelly2501energy" [ stateTopic="shellies/shellyswitch25-745118/relay/energy" ]
    }
}
Das Thing ist als Kind der Bridge definiert. Beim Thing wird deshalb nicht erwähnt, um welches Binding es sich handelt; es gibt keine Doppelpunkte im Thing header.

Alternativ geht es so:

Code: Alles auswählen

Bridge mqtt:broker:3448a27a [ host="localhost", secure=false ]

Thing mqtt:topic:3448a27a:de07756d "Rolladen Flur" (mqtt:broker:3448a27a) @ "DG" {
Channels:
    Type rollershutter : Shelly2501Rollershutter "RolladenDGFlur"   [ stateTopic="shellies/shellyswitch25-745118/roller/0", commandTopic="shellies/shellyswitch25-745118/roller/0/pos", transformationPattern="MAP:shelly.map" ]
    Type        number : Shelly2501Temperature   "Shelly2501temp"   [ stateTopic="shellies/shellyswitch25-745118/temperature" ]
    Type        number : Shelly2501energy        "Shelly2501energy" [ stateTopic="shellies/shellyswitch25-745118/relay/energy" ]
}
Hier ist das Thing unabhängig von der Bridge definiert, stattdessen gibt es einen Verweis auf die Bridge. (doppelt, einmal in der UID des Thing, einmal in Klammern als Verweis auf die Bridge)

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 8. Mai 2019 23:20
von PeterA
Hallo Udo,

haben Sie vielen Dank 😁👍

Und hier kann ich dann auch weitere Shellies hinzufügen?

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 9. Mai 2019 01:06
von udo1toni
Ja, selbstverständlich, mit beiden Schreibweisen. Die erste Variante spart etwas Getippe, mit der zweiten Variante kann man dafür Things und Bridge unabhängig voneinander konfigurieren (insbesondere in unterschiedlichen Dateien, falls das gewünscht ist.

Übrigens sollten die beiden Schreibweisen bei allen Things funktionieren, die mit eine Bridge arbeiten (also z.B. das yamaha Binding oder knx2...)

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 9. Mai 2019 09:56
von PeterA
Hallo Fachgemeinde,

also, meine OH2.4,Mqtt,Shelly2.5 als Rolladen Aktor funktioniert nun soweit.
Allerdings stellt OH in der UI den Zustand des Rolladens umgekehrt dar.
So ist der Shelly angeschlossen:
shelly25_RS.JPG
Und so sieht das in der Original UI aus:
shelly25_UI.JPG
Und im Log sehe dann auch, wenn der Rolladen OFFEN ist sind das 100%
Ist der Rolladen geschlossen, sind es 0%
Aber in der UI vom OH sieht das so aus:
shelly25_OH_UI.JPG
Die 100 wird angezeigt, aber das Icon zeigt "geschlossen" obwohl der Rolladen "offen" ist.
Auch die Bedienung ist über OH umgekehrt.
(Ausser über das Selectpoint Widget, das funktioniert weil hier ein expliziter Wert gesendet wird z.b. 50%)
Wie kann ich das denn Umkehren ?
hier das thing:

Code: Alles auswählen

Bridge mqtt:broker:3448a27a [ host="localhost", secure=false ]
{
    Thing mqtt:topic:de07756d "Rolladen Flur" @ "DG" {
    Channels:
        Type rollershutter : Shelly2501Rollershutter "RolladenDGFlur" [ stateTopic="shellies/shellyswitch25-745118/roller/0/pos", commandTopic="shellies/shellyswitch25-745118/roller/0/command/pos" ]
        Type number: Shelly2501Temperature "Shelly2501temp" [ stateTopic="shellies/shellyswitch25-745118/temperature" ]
        Type number: Shelly2501energy "Shelly2501energy" [ stateTopic="shellies/shellyswitch25-745118/relay/energy" ]
    }
}
hier das item:

Code: Alles auswählen

Rollershutter Shelly2501Rollershutter "Rolladen DG Flur" {channel="mqtt:topic:de07756d:Shelly2501Rollershutter"}
Number Shelly2501Temperature "Shelly2501 Temperatur [%.2f °C]" {channel="mqtt:topic:de07756d:Shelly2501temperature"}
Number Shellly2501Energy "Shelly2501 Energie [%.0f kWh]" {channel="mqtt:topic:de07756d:Shelly2501energy"}
hier die sitemap:

Code: Alles auswählen

Default item=Shelly2501Rollershutter
Setpoint item=Shelly2501Rollershutter icon="rollershutter" minValue=0 maxValue=100 step=10
Gruß
Peter

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 9. Mai 2019 11:29
von winni
Hallo Peter,

das gleiche Problem habe ich auch. Er zeigt mir ebenfalls geschlossen, wenn das Rollo geöffnet ist und andersherum. Kannst Du wirklich mit deinen Settings das Rollo hoch fahren (Pfeil hoch), das Rollo runter fahren (Pfeil runter) und das Rollo mit "x" stoppen? Mit deinem command Topic erwartet der shelly doch nur zahlen zwischen 0 und 100 und erkennt kein "stop"?

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 9. Mai 2019 16:56
von PeterA
Hallo Winni,

mit diesen Widgets in der Sitemap gehts einwandfrei:

Code: Alles auswählen

Switch icon=blinds item=Shelly2501Rollershutter mappings=[0="close",100="open"]
Setpoint item=Shelly2501Rollershutter icon="rollershutter" minValue=0 maxValue=100 step=10
Selection item=Shelly2501Rollershutter mappings=["100"="100","50"="50","0"="0"]

Re: shelly 2 openhab Einbindung per MQTT

Verfasst: 10. Mai 2019 02:09
von peter-pan
Hallo Peter,
das ist in etwa so wie das Problem mit dem Ei und der Henne; wer war zuerst da.
Ich weiss zwar nicht wie so ein Shelly genau funktioniert, aber wenn ich mir die Iconsets von openhab oder von eclipse anschaue, bedeutet "0=offen" und "100=zu".
Hast du es schon mal mit einer SCALE-Transformation (100 = 0 / 90 = 10 ....) probiert ? Bin mir aber nicht sicher ob das klappt.
Eine weitere Möglichkeit der Umkehrung wäre die Icons für den Rollershutter umzubenennen; also aus Rollershutter-100 wird Rollershuter-0,etc. Die Icons dazu kannst du dir ja runterladen und umbenennen.

Gruss
Peter