Seite 1 von 4

Shelly plus 1

Verfasst: 16. Dez 2021 16:29
von binderj1
Hallo
Ich bin neu bei openHAB, darum vielleicht eine dumme Frage. Wie kann ich ein "Shelly plus1" einbinden? In der Binding finde ich sie nicht.

danke
Gruß Hannes

Re: Shelly plus 1

Verfasst: 17. Dez 2021 21:41
von Stachi
Hi,

so wie es aktuell aussieht: Nicht über das Shelly-Binding :)
Habe selbst gerade 2 Shelly plus 1PM bekommen und bin gerade am versuchen, die per MQTT einzubinden...
Aber irgendwie funktioniert das nicht so recht...
Die haben nicht einmal einen sauberen LWT-Status...

Ich werd jetzt mal einen probehalber auf Tasmota flashen...
Dann läuft der auf jeden Fall im OH :)

Das würde ich dir auch empfehlen ;)

Re: Shelly plus 1

Verfasst: 18. Dez 2021 07:20
von violine21
Der Entwickler ist dabei,das Binding zu aktualisieren.
Es gibt wohl derzeit einige neue Geräte. Habt etwas Geduld.😉
https://community.openhab.org/t/shelly- ... 56862/2307

Re: Shelly plus 1

Verfasst: 19. Dez 2021 18:46
von binderj1
Danke für eure Info.
auf Tosmota flashen ist mir zu aufwendig (keine Ahnung wie das geht).
Ich warte mal bis die neue Binding da ist

DANKE
LG Hannes

Re: Shelly plus 1

Verfasst: 22. Dez 2021 10:05
von JC00P3R
Ich habe mein Shelly Plus 1 über MQTT am laufen. Auch das schalten klappt nach etwas Startschwierigkeiten.
Ich hänge mal meine Channel Config an. Der Shelly Plus 1 tickt etwas anders als die Alten.

Incoming Value Transformations

Code: Alles auswählen

jsonpath:$.output
Outgoing Value Format

Code: Alles auswählen

{ "method": "Switch.Set", "params": { "id": 0, "on": %s } }

Re: Shelly plus 1

Verfasst: 17. Jan 2022 11:28
von MVO
JC00P3R hat geschrieben: 22. Dez 2021 10:05 Ich habe mein Shelly Plus 1 über MQTT am laufen. Auch das schalten klappt nach etwas Startschwierigkeiten.
Das ist super interessant. Mit welchem Beta-Stand der Firmware hast Du es hinbekommen?

Ich habe die neueste Firmware 0.9.2 drauf und gestern den Mosquitto mal auf DEBUG-Log gestellt und es wirkte so, als würde der Shelly Plus1 überhaupt keine Veränderungen seinen Status über MQTT senden.

Magst Du ggf. auch Deinen Konfiguration des Shelly hier zeigen?

Re: Shelly plus 1

Verfasst: 17. Jan 2022 14:41
von udo1toni
Hast Du denn mqtt auf dem Shelly aktiviert? mqtt ist bei Shelly ein "entweder oder", also entweder CoAp (Shelly Binding), mit oder ohne Cloud, oder mqtt (ohne Cloud, da kein CoAp)

Re: Shelly plus 1

Verfasst: 19. Jan 2022 13:30
von FjerHAB
MVO hat geschrieben: 17. Jan 2022 11:28
JC00P3R hat geschrieben: 22. Dez 2021 10:05 Ich habe mein Shelly Plus 1 über MQTT am laufen. Auch das schalten klappt nach etwas Startschwierigkeiten.
Das ist super interessant. Mit welchem Beta-Stand der Firmware hast Du es hinbekommen?

Ich habe die neueste Firmware 0.9.2 drauf und gestern den Mosquitto mal auf DEBUG-Log gestellt und es wirkte so, als würde der Shelly Plus1 überhaupt keine Veränderungen seinen Status über MQTT senden.

Magst Du ggf. auch Deinen Konfiguration des Shelly hier zeigen?
Der Shelly sendet bei mir seine Status-Infos wenn du z.b. einen Schalter sendet, as of Version 0.9.2 der Firmware, auf einem MQTT-Topic "<shelly-name>/events/rpc". Der Toggle "RPC status notifications over MQTT" des Shelly ist an.

Beim manuellen Bestätigen von Schaltern kommt bei mir da zwei separate Veröffentlichungen.

Die eine sieht so aus:

Code: Alles auswählen

{
	"src": "<shelly-name>",
	"dst": "<shelly-name>/events",
	"method": "NotifyStatus",
	"params": {
		 "ts": <number>,
		 "input:0": {
			 "id": 0,
			 "state": <boolean>
		 }
	}
}
habe mit dieser konfiguriert. Das Item in openHAB updatet seitdem korrekt. Wenn's licht mit Schalter ausgemacht wird, geht das Item aus, und umgekehrt.

die andere PUBLISH enthält dieses JSON:

Code: Alles auswählen

{
	"src": "shellyplus1-<name>",
	"dst": "shellyplus1-<name>/events",
	"method": "NotifyStatus",
	"params": {
		"ts": <number>,
		"switch:0": {
			"id": 0,
			"output": <boolean>,
			"source": "switch"
		}
	}
}
Wenn der Shelly rebootet oder ähnliches passiert auf dem Topic auch eine Menge Aktivität.

---

Habe eine gesamte Konfiguration mit der ich Erfolg habe hier mal beschrieben (auf Englisch). https://community.openhab.org/t/shelly- ... s/129109/7

Der Trick war am Ende, sich Zugang zu den Aktivitäten auf dem MQTT-Broker zu verschaffen, um zu sehen, auf welchen Topics der Shelly "zuhört", auf welchen Topics er wann was postet, und die die JSON-Inhalte aussehen. (Erreicht dadurch, Mosquoito auf debug-log all zu setzen, und dann mit mosquitto_sub interessante Topics abzuhören.) Dann war es auch möglich, die Konfiguration des MQTT-Bindings entsprechend aufzusetzen.

Abfrage des Online-Status geht auch. Das ist das Topic "<shelly-name>/online". Da kommt einmal ein PUBLISH "true" wenn der Shelly online gekommen ist, und eine "Last Will Message" mit Inhalt "false" wenn der Broker feststellt, das sich der Shelly unerwartet abgemeldet hat.

Ich will noch mal den gesamten Prozess von Aufsetzen des MQTT-Bindings forwärts öffentlich dokumentieren, aber das braucht noch etwas. Das verlinkte oben ist auf jeden Fall genug, um den Shelly zu verbinden, wenn man den MQTT-Broker und das Binding erfolgreich aufgesetzt und den Shelly dazu gebracht hat, sich mit dem Broker zu verbinden - as of versiom 0.9.2. Wer weiß was mit 0.9.3 passiert... :|

Re: Shelly plus 1

Verfasst: 19. Jan 2022 17:49
von FjerHAB
Und heute Abend direkt wieder etwas noch dazugelernt, was ich gestern überlesen hatte!

Für den momentanen Zustand des Relais ist diese Meldung die entscheidende:

Code: Alles auswählen

{
	"src": "shellyplus1-<name>",
	"dst": "shellyplus1-<name>/events",
	"method": "NotifyStatus",
	"params": {
		"ts": <number>,
		"switch:0": {
			"id": 0,
			"output": <boolean>,
			"source": "switch"
		}
	}
}
Die andere Meldung kommt vorher und gibt einen Zustand des Schalters ("input:0" - nullindiziert) an. Switch ist dann der tatsächliche neue Zustand des Schalters.

Aber noch nett wenn man irgendwie den Zustand des Schalters irgendwie separat abgreifen möchte. Oder man den Schalter anders verwendet, da gibt's ja auch noch eine Fülle an Optionen.

Re: Shelly plus 1

Verfasst: 24. Jan 2022 20:20
von violine21
FjerHAB hat geschrieben: 19. Jan 2022 13:30 ... Das verlinkte oben ist auf jeden Fall genug, um den Shelly zu verbinden, wenn man den MQTT-Broker und das Binding erfolgreich aufgesetzt und den Shelly dazu gebracht hat, sich mit dem Broker zu verbinden - as of versiom 0.9.2. Wer weiß was mit 0.9.3 passiert... :|
Hallo,
ich habe das mal mit einem Shelly Plus 1PM aufgebaut.
Mit MQTT.fx erhalte ich u.a. folgende Antwort:

Code: Alles auswählen

{
  "src" : "shellyplus1pm-7c87ce637f30",
  "dst" : "shellyplus1pm-7c87ce637f30/events",
  "method" : "NotifyStatus",
  "params" : {
    "ts" : 1.64304880276E9,
    "switch:0" : {
      "id" : 0,
      "temperature" : {
        "tC" : 44.16,
        "tF" : 111.49
      }
    }
  }
}
Dort wird die Temperatur des Shellies gesendet.
Jetzt habe ich mal testweise den Shelly als Thing angelegt und nur den Temperatur-Channel verlinkt.

Code: Alles auswählen

UID: mqtt:topic:01144906ea:shellyplus1pm-7c87ce637f30
label: Shelly Plus 1PM
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:01144906ea
location: Test
channels:
  - id: test_temperatur
    channelTypeUID: mqtt:number
    label: Temperatur
    description: null
    configuration:
      commandTopic: JSONPATH:$params.switch:0.temperature.tC
      stateTopic: shellyplus1pm-7c87ce637f30/events/rpc
      transformationPattern: JSONPATH:$params.switch:0.temperature.tC
OH3 gibt mir als Wert nur NULL zurück, ich würde aber 44.16 erwarten.
Habe ich in der Konfiguration etwas übersehen?