shelly 2 openhab Einbindung per MQTT

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Selter
Beiträge: 73
Registriert: 9. Mär 2018 16:06
Answers: 0
Wohnort: Bremen

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von Selter »

Hallo zusammen,

ich klinke mich hier mal ein ;)

Den ganzen Abend beschäftige ich mich nun schon mit der Integration eines Shelly2.5 als Rollladenschalter. Dabei hat mir dieser Thread schon sehr weiter geholfen. Vielen Dank an dieser Stelle dafür!

Momentan erhalte ich aber noch folgende Meldungen im Log:

Code: Alles auswählen

[WARN ] [rm.AbstractFileTransformationService] - Could not transform 'stop' with the file 'shelly.map' : Target value not found in map for 'stop'
[WARN ] [eneric.internal.generic.ChannelState] - Command '' not supported by type 'RollershutterValue': null
Meine "shelly.map":

Code: Alles auswählen

UP=up
DOWN=down
STOP=stop
0=close
100=open
open=0
close=100

Code: Alles auswählen

// THINGS
Thing topic shelly25_1 "Shelly: Shelly2.5 #1" @ "MQTT" {
	Channels:
		Type rollershutter : EG_ku_r_tuer 		"Küche Rollladen - Tür"   	[ stateTopic="shellies/shellyswitch25-XXXX/roller/0", commandTopic="shellies/shellyswitch25-XXXX/roller/0/pos", transformationPattern="MAP:shelly.map" ]
        Type number : Shelly25_1_Temperature   	"Shelly25 #1: Temp"   		[ stateTopic="shellies/shellyswitch25-XXXX/temperature" ]
        Type number : Shelly25_1_Energy        	"Shelly25 #1: Energy" 		[ stateTopic="shellies/shellyswitch25-XXXX/relay/energy" ]
	}

Code: Alles auswählen

// ITEMS
Rollershutter   EG_ku_r_tuer                "Küche Rollladen - Tür" <rollershutter>     (gM,gR,Gtest,Gshelly,Grollo,Gku) [ "Switchable" ] {channel="mqtt:topic:mosquitto:shelly25_1:EG_ku_r_tuer"}
Number          EG_ku_r_tuer_Temperature    "Shelly25 #1: Temperature"                  (Gest)   {channel="mqtt:topic:mosquitto:shelly25_1:Shelly25_1_Temperature"}
Number          EG_ku_r_tuer_Energy         "Shelly25 #1: Energy"                       (Gtest)  {channel="mqtt:topic:mosquitto:shelly25_1:Shelly25_1_Energy"}
Und was hat es mit der 2. Meldung auf sich?

Code: Alles auswählen

Command '' not supported by type 'RollershutterValue': null
Image 170.png
Laut Log gibt es Temperaturwerte:

Code: Alles auswählen

EG_ku_r_tuer_Temperature changed from 46.54 to 46.70
... aber die werden nicht in der Sitemap angezeigt.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Selter am 10. Mai 2019 23:14, insgesamt 2-mal geändert.
openHAB 3.2 in einer Debian-VM mit openHABian unter Proxmox 8.3.3 auf Intel NUC 5i3ryh // WiFi (UniFi-APs) + Aqara Gateway + Zigbee2MQTT@SLZB-06 + Aeon Z-Wave // viele Shellies / Sonoffs mit Tasmota / viele Aqara Sensoren über Gateway / diverse Sensoren über Z2M // Grafana (InfluxDB)

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

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von udo1toni »

Man benutzt kein Setpoint Widget, um einen Rollladen zu fahren :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von PeterA »

Kalibrierung des Rolladens durchführen über die Shelly App oder das Web If. Und den Mapping Kram weglassen.
Und dann den Rolladen direkt über die Positionen ansteuern.
- OpenHab 2.4
#PWRUP

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

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von peter-pan »

Hab's auch grad ausprobiert mit einem Dummy. Setpoint ist falsch. alles andere geht richtig. Bei dem Switch Item solltest du dann noch open und close tauschen.

Code: Alles auswählen

Switch item=EG_Bad_Rolladen mappings=[0="open",100="close"]
;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von udo1toni »

Setpoint: Einen numerischen Wert erhöhen oder verringern. Dabei kann man Ober- und Untergrenze sowie Schrittweite definieren. Pfeil runter: Wert verringern Pfeil rauf: Wert erhöhen.
Da "0%" beim Rollladen aber "oben" bedeutet, ist Setpoint einfach ungeeignet zur Rollladensteuerung, zumindest, wenn man die Tasten und die Laufrichtung in Einklang bringen will.
Also besser, um einfach rauf-stop-runter zu steuern ein Rollershutter Item mit Switch Widget verwenden (dadurch wird automatisch ein Rollershutter Widget angezeigt, mit korrekter Zuordnung der Laufrichtung ;)
Und wenn es um Positionsfahrten geht, entweder Selection Widget oder Switch Widget mit mapping (für wenige ausgewählte Fixpositionen).

So als Randbemerkung: mehr als 4 Positionen (inklusive komplett unten/oben) werden so gut wie nie gebraucht; jedenfalls als Taste in der Oberfläche. Der Hersteller Somfy kommt mit drei Tasten aus: Hoch, Stopp("My"), Runter, wobei die Stopp(My)-Taste, sofern der Laden gerade gestoppt ist zum Anfahren einer vorher gespeicherten "My" Position dient. Somfy kann hier durchaus als Richtgröße genannt werden.
Wie gesagt, ich beziehe mich auf Tasten zum direkten Anfahren, innerhalb einer Rule kann es durchaus sinnvoll sein, Läden z.B. alle paar Minuten sonnengeführt um wenige Prozente zu verfahren, aber das macht man ja nicht über die UI...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Selter
Beiträge: 73
Registriert: 9. Mär 2018 16:06
Answers: 0
Wohnort: Bremen

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von Selter »

udo1toni hat geschrieben: 11. Mai 2019 00:16 Also besser, um einfach rauf-stop-runter zu steuern ein Rollershutter Item mit Switch Widget verwenden (dadurch wird automatisch ein Rollershutter Widget angezeigt, mit korrekter Zuordnung der Laufrichtung ;)
Wie müsste ich dann mein Item ändern?

Code: Alles auswählen

Type rollershutter : EG_ku_r_tuer 		"Küche Rollladen - Tür"   	[ stateTopic="shellies/shellyswitch25-XXXX/roller/0", commandTopic="shellies/shellyswitch25-XXXX/roller/0/pos", transformationPattern="MAP:shelly.map" ]
openHAB 3.2 in einer Debian-VM mit openHABian unter Proxmox 8.3.3 auf Intel NUC 5i3ryh // WiFi (UniFi-APs) + Aqara Gateway + Zigbee2MQTT@SLZB-06 + Aeon Z-Wave // viele Shellies / Sonoffs mit Tasmota / viele Aqara Sensoren über Gateway / diverse Sensoren über Z2M // Grafana (InfluxDB)

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von PeterA »

Selter hat geschrieben: 11. Mai 2019 14:42
udo1toni hat geschrieben: 11. Mai 2019 00:16 Also besser, um einfach rauf-stop-runter zu steuern ein Rollershutter Item mit Switch Widget verwenden (dadurch wird automatisch ein Rollershutter Widget angezeigt, mit korrekter Zuordnung der Laufrichtung ;)
Wie müsste ich dann mein Item ändern?

Code: Alles auswählen

Type rollershutter : EG_ku_r_tuer 		"Küche Rollladen - Tür"   	[ stateTopic="shellies/shellyswitch25-XXXX/roller/0", commandTopic="shellies/shellyswitch25-XXXX/roller/0/pos", transformationPattern="MAP:shelly.map" ]
Hallo Seiter,

hier meine Konfiguration:
mqtt.things:

Code: Alles auswählen

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


{
    Thing topic XXXXXXX "Rolladen" @ "West" {
    Channels:
        Type rollershutter : Shellyswitch25_XXXXXXX_roller   "Rolladen DG Flur"   [ stateTopic="shellies/shellyswitch25-XXXXXXX/roller/0/pos", commandTopic="shellies/shellyswitch25-XXXXXXX/roller/0/command/pos" ]
        Type        number : Shellyswitch25_XXXXXXX_temp     "Shelly2501temp"     [ stateTopic="shellies/shellyswitch25-XXXXXXX/temperature" ]
        Type        number : Shellyswitch25_XXXXXXX_energy   "Shelly2501energy"   [ stateTopic="shellies/shellyswitch25-XXXXXXX/relay/energy" ]
    }
}
mqtt.items:

Code: Alles auswählen

Rollershutter Shellyswitch25_XXXXXXX_roller "Rolladen DG Flur" {channel="mqtt:topic:XXXXXXX:XXXXXXX:Shellyswitch25_XXXXXXX_roller"}
Number Shellyswitch25_XXXXXXX_temp "Shelly2501temp [%.2f °C]" {channel="mqtt:topic:XXXXXXX:XXXXXXX:Shellyswitch25_XXXXXXX_temp"}
Number Shellyswitch25_XXXXXXX_energy "Shelly2501energy [%.0f W*min]" {channel="mqtt:topic:XXXXXXX:XXXXXXX:Shellyswitch25_XXXXXXX_energy"}
Sitemap:

Code: Alles auswählen

Default item=Shellyswitch25_XXXXXXX_temp icon="temperature"
        Default item=Shellyswitch25_XXXXXXX_kWh icon="energy"
        Switch item=Shellyswitch25_XXXXXXX_roller mappings=[0="open",80="80%",100="close"] 
        Slider item=Shellyswitch25_XXXXXXX_roller
        Selection item=Shellyswitch25_XXXXXXX_roller mappings=["0"="0","20"="20","40"="40","60"="60","80"="80","100"="100"]
Die letzten drei Zeilen sind verschiedene Widgets in der Sitemap machen aber alle das gleiche.

Gruß Peter
- OpenHab 2.4
#PWRUP

Selter
Beiträge: 73
Registriert: 9. Mär 2018 16:06
Answers: 0
Wohnort: Bremen

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von Selter »

Peter Aschinger hat geschrieben: 11. Mai 2019 14:50
hier meine Konfiguration:
Hallo Peter,

vielen Dank!

Also ist die transformation (map) nicht nötig, richtig?
openHAB 3.2 in einer Debian-VM mit openHABian unter Proxmox 8.3.3 auf Intel NUC 5i3ryh // WiFi (UniFi-APs) + Aqara Gateway + Zigbee2MQTT@SLZB-06 + Aeon Z-Wave // viele Shellies / Sonoffs mit Tasmota / viele Aqara Sensoren über Gateway / diverse Sensoren über Z2M // Grafana (InfluxDB)

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von PeterA »

Nein, weil der Rolladen (wenn über die Shelly App kalibriert) direkt auf eine Position gefahren wird.
- OpenHab 2.4
#PWRUP

hpd96
Beiträge: 1
Registriert: 12. Mai 2019 16:20
Answers: 0

Re: shelly 2 openhab Einbindung per MQTT

Beitrag von hpd96 »

Hallo,

hier meine Lösung via mqtt1 und shelly-positions-invertierung:

reversed by shelly. Firmware-fehler...

Mqtt reporting 0 when shutter is closed. But the standard defined by KNX is:
100% = closed
0% = open

items/shelly.items:

Code: Alles auswählen

Rollershutter Rollladen_wz_westen "Rollladen westen [%.0f %%]" <rollershutter> {mqtt=">[tux:shellies/shellyswitch-55B74B/roller/0/command:command:*:MAP(shelly-rollladen.map)], <[tux:shellies/shellyswitch-55B74B/roller/0/pos:state:JS(rollershutter.js)]" , autoupdate="false" }
transform/rollershutter.js

Code: Alles auswählen

(function(i) {
// shelly 0% = Closed
// oh2 0% = open

        //The following script converts [0% - 100%] to  [100% - 0%].
    var percent_shelly = parseInt(i, 10);

    var percent_oh = (100.0 - percent_shelly);

    //Return result with one decimal accuracy
        return percent_oh.toFixed(1);
})(input)
So passt das icon für Rollladen in sitemap wunderbar:

Code: Alles auswählen

  Frame label="Roll-Läden WZ"
        {
                Default item=Rollladen_wz_westen
                Default item=Rollladen_wz_osten
        }
In rules:

Rollladen_wz_westen.sendCommand("UP")
publish ( "tux", "shellies/shellyswitch-55B74B/roller/0/command/pos", "85") // ToDo via item

Antworten