Shelly plus 1

Geflasht oder ungeflasht ...

Moderator: seppy

Ricotchet
Beiträge: 17
Registriert: 30. Okt 2019 18:54
Answers: 0

Re: Shelly plus 1

Beitrag von Ricotchet »

Danke udo1toni das hat mich ein ganzes Stück weitergebracht mit diesem Thing Code

Code: Alles auswählen

    Thing topic shelly1pmTerasse "Terasse" @ "Network" 
    {
    Channels:
        Type switch : sPM1_Terasse "Decke" [
                                        stateTopic="shellyplus1pm-d4d4da082310/status/switch:0",
                             transformationPattern="JSONPATH:$.output",
                                      commandTopic="shellyplus1pm-d4d4da082310/rpc",
                               formatBeforePublish="{\"id\": \"0\",\"src\": \"shellyplus1pm-d4d4da082310\", \"method\": \"Switch.Set\",	\"params\": {\"id\":0,\"on\":\"%s\"}}",
                                               off="false",
                                                on="true"
                                        ]
    } 
Funktioniert schon mal der Status
Für das steuern sende ich und ich sende per MQTT an das Topic "shellyplus1pm-d4d4da082310/rpc"
{
"id" : "0",
"src" : "shellyplus1pm-d4d4da082310",
"method" : "Switch.Set",
"params" : {
"id" : 0,
"on" : "false"
}
}
Dort kriege ich als Antwort:
{
"id" : 0,
"src" : "shellyplus1pm-d4d4da082310",
"dst" : "shellyplus1pm-d4d4da082310",
"error" : {
"code" : -103,
"message" : "Missing required argument 'on'!"
}
}
Es sieht so aus als ob er das on nicht sehen würde laut dieser https://shelly-api-docs.shelly.cloud/ge ... CChannels/ Doku von Shelly sollte es richtig sein jemand eine Idee?

Oder darf das
"false"
nicht in Anführungszeichen wie müsste ich den Code dann anpassen?

Ricotchet
Beiträge: 17
Registriert: 30. Okt 2019 18:54
Answers: 0

Re: Shelly plus 1

Beitrag von Ricotchet »

Nachtrag: nachdem ich das hier per Hand gepublished habe funktioniert das ausschalten
{
"id" : "0",
"src" : "shellyplus1pm-d4d4da082310",
"method" : "Switch.Set",
"params" : {
"id" : 0,
"on" : false
}
}

Wie muss ich jetzt den Code ändernum von
"on" : "false"
auf
"on" : false
zu kommen?

Ricotchet
Beiträge: 17
Registriert: 30. Okt 2019 18:54
Answers: 0

Re: Shelly plus 1

Beitrag von Ricotchet »

Nach etwas ausprobieren doch selbst hinbekommen hier der Thing Code für die Nachwelt

Code: Alles auswählen

 Thing topic shelly1pmTerrasse "Terrasse" @ "Network" 
    {
    Channels:
        Type switch : sPM1_Terrasse "Decke" [
                                        stateTopic="shellyplus1pm-d4d4da082310/status/switch:0",
                             transformationPattern="JSONPATH:$.output",
                                      commandTopic="shellyplus1pm-d4d4da082310/rpc",
                               formatBeforePublish="{\"id\": \"0\",\"src\": \"shellyplus1pm-d4d4da082310\", \"method\": \"Switch.Set\",	\"params\": {\"id\":0,\"on\":%s}}",
                                               off="false",
                                                on="true"
                                        ]
    }                                    
}
und das Item

Code: Alles auswählen

Switch              Terrasse_Licht                  "Terasse"             (Terrasse){channel="mqtt:topic:Mosquitto:shelly1pmTerasse:sPM1_Terrasse"}

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

Re: Shelly plus 1

Beitrag von udo1toni »

Genau. Der Punkt ist, dass der Wert true/false ein Boolean Wert ist, der nicht in Anführungszeichen stehen darf. Das war mir oben durchgerutscht.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet

EmptySoft
Beiträge: 223
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Shelly plus 1

Beitrag von EmptySoft »

Ricotchet hat geschrieben: 17. Okt 2023 18:13 Nach etwas ausprobieren doch selbst hinbekommen hier der Thing Code für die Nachwelt
Danke
BYe
Harald

schultzi007
Beiträge: 12
Registriert: 28. Apr 2021 10:43
Answers: 0

Re: Shelly plus 1

Beitrag von schultzi007 »

Hallo,
bei mir funktioniert der Shelly 1 plus über mqtt soweit, bis auf das Schalten.
Es läuft noch openHAB 3.4.2 und mosquito alles über docker.
Das thing sieht so aus:

Code: Alles auswählen

UID: mqtt:topic:267e677471:sh1P_garage
label: shP1 Garage
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:267e677471
channels:
  - id: garage_Status
    channelTypeUID: mqtt:switch
    label: Status Garage
    description: ""
    configuration:
      qos: 1
      stateTopic: sh1P_Garage/status/input:100
      transformationPattern: JSONPATH:$.state
      off: "false"
      on: "true"
  - id: temperature
    channelTypeUID: mqtt:number
    label: Temperatur Garage
    description: ""
    configuration:
      unit: °C
      qos: 1
      stateTopic: sh1P_Garage/status/temperature:100
      transformationPattern: JSONPATH:$.tC
  - id: GaragenTaster
    channelTypeUID: mqtt:switch
    label: Garage Taster
    description: ""
    configuration:
      qos: 1
      formatBeforePublish: '{"src":"shellyplus1-80646fcb2bc8\","method":"Switch.Set","params":{"id":0,"on":%s}}'
      commandTopic: sh1P_Garage/events/rpc
      stateTopic: sh1P_Garage/status/switch:0
      transformationPattern: JSONPATH:$.output
      off: "false"
      on: "true"
  - id: sh1P_humidity_garage
    channelTypeUID: mqtt:number
    label: Luftfeuchtigkeit Garage
    description: ""
    configuration:
      step: 1
      qos: 1
      stateTopic: sh1P_Garage/status/humidity:100
      transformationPattern: JSONPATH:$.rh
Wenn man den Shelly über die eigene Seite schaltet, wird es auch so in oh registriert.
Den formatBeforePublish String wird auch so übertragen und ist im MQTT Explorer in events so zu lesen. Nur der Shelly schaltet nicht.
Für jede Hilfe bin ich dankbar!

Grüße

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

Re: Shelly plus 1

Beitrag von udo1toni »

Der Backslash dürfte da nicht hingehören. Falls Du tatsächlich einen Backslash an der Stelle brauchst, musst Du ihn doppelt angeben, denn der Backslash ist das Escape Zeichen.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet

schultzi007
Beiträge: 12
Registriert: 28. Apr 2021 10:43
Answers: 0

Re: Shelly plus 1

Beitrag von schultzi007 »

Hallo, der Backslash gehört nicht da hin; funktionier aber in keiner Variante ( ohne, \ oder \\).
Im MQTT-Explorer bekomme ich aber auch keinen JSON String hin, der den Shelly schaltet :( .
Gefühlt habe ich schon alle Seiten mit Shelly 1 plus mqtt durchgesucht und alle Hinweise ausprobiert, leider ohne Erfolg.

Wenn man Tasmota auf den Shelly flasht, wäre dann auch das Addon verfügbar?

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

Re: Shelly plus 1

Beitrag von udo1toni »

Wenn Du den Shelly mit Tasmota flashst, ist es anschließend ein Tasmota Device, mit allen Funktionen, die dort für die Hardware zur Verfügung stehen.
Siehe https://templates.blakadder.com/shelly_plus_1.html, beachte auch die Warnung, falls Deine Firmware zu neu ist, kann das Gerät nicht OTA (over the air) geflasht werden, d.h. Du musst das Gerät dann über die serielle Schnittstelle flashen. Das gilt natürlich nur, solange noch die Original Firmware aktiv ist, wenn mal Tasmota drauf ist, funktioniert auch OTA Update wieder.

Grundsätzlich sollte das auch mit der nativen Shelly mqtt Schnittstelle gehen, nur hat die Firma alles dazu getan, es dem Kunden möglichst unbequem zu machen. In Anbetracht der Tatsache, dass die ersten Shellies recht einfach über mqtt einzubinden waren, muss ich hier auch Absicht unterstellen.
Auf der anderen Seite ist Tasmota eh die bessere Wahl... ;)
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet

schultzi007
Beiträge: 12
Registriert: 28. Apr 2021 10:43
Answers: 0

Re: Shelly plus 1

Beitrag von schultzi007 »

Hallo,
so, nun habe ich den Fehler gefunden :)
Das comand topic war:

Code: Alles auswählen

commandTopic: sh1P_Garage/events/rpc
muss aber

Code: Alles auswählen

commandTopic: sh1P_Garage/rpc
sein.
Bisher passten die topics entsprechend der Pfade und Namen im MQTT Explorer.

Zum Glück kann ich mich jetzt um die Things kümmern, die seit dem Update von 3.4 auf 4.1 nicht mehr laufen ;)

Vielen Dank nochmal!!

Antworten