Shelly plus 1

Geflasht oder ungeflasht ...

Moderator: seppy

Benutzeravatar
binderj1
Beiträge: 20
Registriert: 11. Dez 2021 09:43
Wohnort: Windigsteig

Shelly plus 1

Beitrag 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
openHAB 3.2.0 auf einem Raspberry Pi 3 Model B+

Stachi
Beiträge: 125
Registriert: 8. Dez 2020 19:29

Re: Shelly plus 1

Beitrag 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 ;)

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Shelly plus 1

Beitrag 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

Benutzeravatar
binderj1
Beiträge: 20
Registriert: 11. Dez 2021 09:43
Wohnort: Windigsteig

Re: Shelly plus 1

Beitrag 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
openHAB 3.2.0 auf einem Raspberry Pi 3 Model B+

JC00P3R
Beiträge: 7
Registriert: 12. Sep 2019 10:37

Re: Shelly plus 1

Beitrag 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 } }
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

MVO
Beiträge: 1
Registriert: 17. Jan 2022 11:06

Re: Shelly plus 1

Beitrag 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?

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

Re: Shelly plus 1

Beitrag 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)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

FjerHAB
Beiträge: 2
Registriert: 19. Jan 2022 13:10

Re: Shelly plus 1

Beitrag 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... :|

FjerHAB
Beiträge: 2
Registriert: 19. Jan 2022 13:10

Re: Shelly plus 1

Beitrag 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.

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Shelly plus 1

Beitrag 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?

Antworten