NEWS
http Link Shelly
-
Hallo,
ich versuche mich gerade mit iobroker & shellys. Leider bin ich alles andere als technikaffin und habe hier nicht viel (vielleicht auch gar keine) Ahnung.Jetzt mein Problem
Auf meiner DS 720+ (feste IP) läuft Docker und darüber habe ich iobroker zum laufen gebracht. Für meine Shellys habe ich mir den Shelly Adapter installiert und die Shellys eingebunden (klappt auch ersteinmal).
Jetzt möchte ich z.B. ein Shelly 1 (hängt an einer Lampe im Büro) über einen direkten http link im Browser ein und ausschalten können. Ich vermute, dass der Link (http request??) wie folgt aussehen könnte (klappt aber in der Realität gar nicht).
Mein Link sieht wie folgt aus:http://111.xxx.y.zzz:8095/set/shelly.0.SHSW-1#D7DB95D4CDCC#1.Relay0.Switch?value=0
Naiverweise hätte ich jetzt gedacht, dass wenn ich den value Wert zwischen 0 und 1 wechsel, mein Licht an und aus geht. Klappt aber wie gesagt so gar nicht. Weiß nicht, ob die Syntax vom Link richtig ist oder irgendwas anderes nicht gut ist.
Ist hier jemand fähiger und kann helfen?
Vg
-
@sveko sagte in http Link Shelly:
Jetzt möchte ich z.B. ein Shelly 1 (hängt an einer Lampe im Büro) über einen direkten http link im Browser ein und ausschalten können.
warum willst du das tun ??
ansonten fehlt dir der simple-api adapter..um das zu tun
-
@sveko Hilft Dir jetzt nicht, aber befriedigt meine Neugier: Wieso hast Du den in den ioBroker eingebunden, wenn Du ihn dann doch direkt über http ansprechen willst? Muss es denn ein Link sein?
-
@arteck Brauch einen solchen Link, um mein Masterlink Gateway (MLGW) von Bang & Olufsen zu füttrern (Shellys über Fernbedienung Beo4 zu schalten).
-
@sveko Der simple API - Adapter hat ja meines Wissens als Standard den Port 8087.
Allerdings kannst Du über HTTP den Shelly direkt schalten. da kannst den iobroker aussen vorlassen. Die Rückmeldung vom Shelly an den iobroker funktioniert ja weiterhin.
http://192.168.xxx.xxx/relay/0?turn=on http://192.168.xxx.xxx/relay/0?turn=off http://192.168.xxx.xxx/relay/0?turn=toggle
siehe:
https://shelly-api-docs.shelly.cloud/gen1/#shelly1-1pm-relay-0
Die IP-Adresse ist die IP-Adresse Deines Shellies (nicht des iobrokers)
Vorteil ist, dass der iobroker auch mal ausfallen kann und direkt über die FB schalten kannst.
-
@arteck Danke erstmal, werde mal nachlesen und ggf (eher wahrscheinlich) noch mal melden
-
@mickym Danke schon mal.
Problem beim Masterlink Gateway (MLGW) von Bang & Olufsen ist, dass er nur 5 devices (also max 5 Schellys) händeln kann. Daher kommt der iobroker ins Boot. Der wäre dann im MLGW nur ein device und man kann dann mit dem einen device im MLGW beliebig viele Shellys ansprechen (geht dann über die http Links). Ist eher eine Notlösung für in die Jahre gekommene Geräte von B&O -
@sveko WIe gesagt Du kannst die Shellies direkt über die geposteten HTTP Links ansprechen.
Auch wenn Du die Shellies über die Simple API im iobroker ansprichst brauchst ja unterschiedliche Links, da ja auch die Shellies unterschiedliche Datenpunkte haben.
Kann da keinen Unterschied erkennen - ausser dass bei einem sich die IP-Adresse URL und bei anderen sich die Parameter zur URL ändern.
-
@mickym der MLGW stellt die Verbindung zwischen B&O (Masterlink, alt) und Internet her. Kann dann z.B. auf der Beo 4 eine Taste drücken (Fernbedienung geht über Infrarot) und dann geht ein Rolladen hoch oder runter. Im MLGW ist der Shelly2.5 derzeit ein device. Das devive bekommt dann mehrere http Links zugeordnet, die z.B. Rolladen hoch und runter fahren. Daneben kann ich dann im MLGW Macros anlegen, die einem Tastendruck auf der Beo4 einen http Link zuordnen.
Wie gesagt Problem ist bei neueren Sachen überholt, würde es aber trotzdem gern hinbekommen... Hoffnung stirbt zuletzt -
@sveko sagte in http Link Shelly:
@mickym der MLGW stellt die Verbindung zwischen B&O (Masterlink, alt) und Internet her. Kann dann z.B. auf der Beo 4 eine Taste drücken (Fernbedienung geht über Infrarot) und dann geht ein Rolladen hoch oder runter. Im MLGW ist der Shelly2.5 derzeit ein device. Das devive bekommt dann mehrere http Links zugeordnet, die z.B. Rolladen hoch und runter fahren. Daneben kann ich dann im MLGW Macros anlegen, die einem Tastendruck auf der Beo4 einen http Link zuordnen.
Wie gesagt Problem ist bei neueren Sachen überholt, würde es aber trotzdem gern hinbekommen... Hoffnung stirbt zuletztWie gesagt wenn Du mehrere Shellies ansprechen willst dann brauchst Du immer unterschiedliche HTTP Links (entweder über den Pfad zum Shelly Datenpunkt im iobroker oder über unterschiedliche IP Adresse). Im Prinzip kannst Du doch jedem Makro unterschiedliche https zurordnen.
-
@mickym sagte in http Link Shelly:
Wie gesagt wenn Du mehrere Shellies ansprechen willst dann brauchst Du immer unterschiedliche HTTP Links (entweder über den Pfad zum Shelly Datenpunkt im iobroker oder über unterschiedliche IP Adresse)
Das ist glaube das was ich suche. Habe ein Shelly (SHSW-1#D7DB95D4CDCC#1, hat z.B.die feste IP 111.152.3.031 in meinem Netzwerk) und dazu brauche ich zwei http Links, die über den iobroker gehen (d.h, ich spreche IP iobroker an (hier 111.xxx.y.zzz:8095, 9095 wäre port simple-api adapter) und dann schaltet Shelly an/aus.
Ein Link müsste den Shelly einschalten, Beispiellink. (klappt aber bei mir wie gesagt nicht)
http://111.xxx.y.zzz:8095/set/shelly.0.SHSW-1#D7DB95D4CDCC#1.Relay0.Switch?value=1
und einer ausschalten, z.B (klappt aber auch nicht)
http://111.xxx.y.zzz:8095/set/shelly.0.SHSW-1#D7DB95D4CDCC#1.Relay0.Switch?value=0Mein Problem derzeit glaube ich ist, dass ich den genauen Link (Weg zum Shelly im iobroker) mit Befehl Lampe ein/aus nicht hinbekomme...
-
@sveko
Wenn Du den Port verändert hast dann ja - sonst ist simple API 8087 .Ich verstehe trotzdem nicht warum Du die Shellys nicht direkt ansprichst:
Anstelle von :
Ein Link müsste den Shelly einschalten, Beispiellink. (klappt aber bei mir wie gesagt nicht)
http://111.xxx.y.zzz:8095/set/shelly.0.SHSW-1#D7DB95D4CDCC#1.Relay0.Switch?value=1
und einer ausschalten, z.B (klappt aber auch nicht)
http://111.xxx.y.zzz:8095/set/shelly.0.SHSW-1#D7DB95D4CDCC#1.Relay0.Switch?value=0
könntest Du genaus so
Ein Link müsste den Shelly einschalten,
http://192.168.xxx.xxx/relay/0?turn=on
und einer ausschalten
http://192.168.xxx.xxx/relay/0?turn=offverwenden - ich verstehe einfach nicht, warum Du das in jedem Fall über den iobroker machen willst.
-
@mickym
wie gesagt, kann im MLGW nur max. 5 devices anlegen (sprich 5 Shellys mit eigener IP), bedeutet, dass der MLGW nur 5 Shellys verwalten kann und ich mit der Fernbedienung nur 5 Shellys bedienen kann. Habe ebr mehr Shellys, die ich gerne mit der Fernbedienung steuern würde, dager der Umweg über ein device im MLGW (wäre dann die IP des iobroker), mit welchen ich dann die anderen Shellys ansprechen kannDenke man kann es sich wie einen Router (wäre iobroker) vorstellen, nach außen eine IP, die im inneren Netzwerk dann auf die Geräte (wären dann die Shellys) aufgeteilt wird. Sehr sozusagen von außen nur externe IP und muss dann einen Befehl (http Link) haben, um ein Shelly an/aus zu schalten. Den Link suche ich...
-
@sveko ok, ich verstehendes nun so, dass deine Fernbedienung die url zusammensetzt und du deshalb auf 4 IP Adressen beschränkt ist, du aber zu einem Gerät beliebig viele Kommandos setzen kannst.
Wie gesagt verstehe immer noch nicht, warum du 8095 anstelle von 8087 nimmst bzw. Warum du das umgestellt hast. Dann probiere halt nochmal einen Punkt unter userdata umzustellen- nur um zu überprüfen dass der Shelly Adapter Dir keinen Strich durch die Rechnung macht.
-
@mickym werd es mal versuchen
-
@sveko eventuell können Sonderzeichen wie ein # das nämlich zunichte machen. Dann musst halt über deine Logikmaschine oder über einen Alias die http Befehle bzw. Den Adapter schalten.
-
Dank Dir. Dein Tipp war gut. Ersetze # durch %23 und es klappt.
https://github.com/ioBroker/ioBroker.simple-api/issues/28
Im Artikel sprechen sie noch von curl !. Kann ich aber nichts mit anfangen. Was ist dies, Zeichen, Tastenkombi, ???
-
@sveko curl ist wenn Du ein http Request über die Kommandozeile absetzen willst. curl ist also ein Kommandozeilenprogramm. Kannst Du auch unter Windows in der Eingabeaufforderung nutzen.
-
@mickym Thx