NEWS
[gelöst] Shelly Adapter in Iobroker
-
OK!! Die größte Hürde ist überwunden! Der Rest ist einfacher.
- Also im entfernten Haus hast Du noch keine Shelly installiert. Hast Du denn welche lokal? Dann könnten wir das simulieren und Du musst dann später nur noch die IPs der Shellies ändern.
- Du brauchst keinen Pi im entfernten Haus
- es gibt mehrere Möglichkeiten die Dinger zu steuern. Shelly Cloud, Shelly App mit Share, Web Interface, iobroker mit Blockly, das alles ohne Pi im entfernten Haus.
- Dein lokaler Pi wird NIE eine Adresse des entfernten Netzes bekommen! Die VPN Verbindung wird von den beiden Fritzboxen verwaltet, nicht von irgendeinem Gerät im Netz.
- Falls Du einen Pi3 oder Pi4 hast, stell so bald als möglich auf USB-Boot um und hänge eine kleine SSD oder einen USB3 Stick dran. Halten wesentlich länger als die SD Karten.
- Und den wichtigsten iobroker Zusatz Adapter: BackItUp! installieren
-
@Albert-K
Hallo. nein die werden heute Installiert. und sind soweit vorbereitet das die sich mit dem WLAN netz dort verbinden.Wunderbar dann lass ich den erstmal weg.
Wenn die sich erstmal über die Cloud melden denke ich kann ich den Rest von hier regeln.
Ach so ich verstehe. Hatte mit VPN noch nicht so viel am Hut. Lerne aber gerne dazu. Bislang ging es immer nur um lokales Netzwerk.
Ich habe auf einem Pi 3 angefangen mit der Vis und Shelly. Nun ein Pi 4 wo ich nun drauf umziehe. Der Pi 3 ist noch als test was ich dann im Pi 4 Schön einrichten kann. Um legen auf USB Boot habe ich beim Pi 1 mal gemacht. Da habe ich aber schon diverse Anleitungen gefunden werde ich noch in Angriff nehmen wenn der Grund läuft.
Wird auch heute Abend gemacht. da bin ich dann wider hier und bin schon gespannt wie sich das alles verhält.
Vielen dank heute Abend gibt es Feedback. Danke
-
Gut, dann mal hier der nächste Schritt
- Wenn Deine Shelly im entfernten Netz aktiv sind kannst Du ja schon mal über die IP auf deren Web Interface zugreifen.
- Über die IP + "/status" bekommst Du einen Text String über den Status des Shelly
- Im lokalen iobroker den Parser Adapter installieren
- Unter Instanzen/Parser auf den Gabelschlüssel klicken, dann auf das Plus Zeichen (neue Regel hinzufügel) Ich nehme jetzt mal einen Shelly 1 an.
- Name vergeben (zB Wohnzimmer), URL ist die IP + /status des Shelly, Typ ist string, RegEx: (?<="ison":)\w+ Wichtig: Die RegEx muß 100% stimmen, keine Leerstellen zwischen den einzelnen Zeichen! Ganz unten siehst Du dann das Ergebnis der Abfrage. "false" wenn ausgeschaltet, "true" wenn eingeschaltet
- Den Parser Eintrag speichern und schließen
- Unter iobroker Objekte/Parser sollte nun ein Datenpunkt "Wohnzimmer" angelegt sein der ständig aktualisiert wird und den Du ganz normal in einer VIS Seite verwenden kannst.
Tadaaah!!! Das wars für die Anzeige.
-
@Albert-K
Hallo.
So Installation erfolgreich. Alle Shellys sind erreichbar und Online. Über die IP Adressen und der Cloud meldet sich alles.Parsen habe ich nun mit den Daten gefüttert. Komme aber immer noch auf TRUE. Er scheint den Shelly aber zu sehen, da wenn ich die Oberfläsche mit Passwortschutz habe dann wird er abgelehnt und das kann ich in Parser auch sehen. Passwortschutz ist aktuell überall aus damit ich erstmal den Grund habe. Den RegEx habe ich auch abgetippt und den Status als Text kopiert auch in Original, da mein übersetzer da immer alles geändert hat. Hmm glaube das nur noch eine kleinigkeit.
Aber bis hier hin ist schon mal alles richtig gut. Vielen Dank dafür.
-
Du darfst den Text aus dem Browser Fenster NICHT in den Parser füttern! Der holt sich das alle paar Sekunden selbst! Wenn da schon was drin steht, hängt er das was er von Shelly abholt wahrscheinlich unten an und das RegEx sucht nur nach dem ersten Vorkommen des "ison" Eintrages.
-
@Albert-K
Nene hab auch nur den RegEX versucht. Er ruft sich den Text ab aber in den Objekten bleibt True. Dort kommen keine Daten an bis jetzt. -
-
@Albert-K
Ach so. Ich habe überall Shelly 1 PM verbaut. Ich verstehe. -
Hab leider keinen Shelly PM. Du musst halt den status text nach dem Wert den Du suchst untersuchen und das RegEx entsprechend anpassen.
Der erste Teil in Klammern ist der String nach dem gesucht wird, der zweite Teil (\w+) bringt das unmittelbar folgende Wort zurück.
PS: Den Poll Intervall evtl auch anpassen, weiss nicht mehr was da standardmässig drin ist. Du kannst ruhig 5000 ms individuell angeben. Läuft bei mir problemlos.
-
@Albert-K
Ich habe schon mal geguckt. Wenn ich hätte ja gerne die Temperaturen und den aktuellen verbrauch des Stroms. Wenn ich die Hilfe richtig verstehe dann kann ich die mit Kommas trennen.Ich werde mal suchen:
Mein aktueller Status sieht so aus.
{"wifi_sta":{"connected":true,"ssid":"Haus_Sueder","ip":"192.168.188.33","rssi":-78},"cloud":{"enabled":true,"connected":true},"mqtt":{"connected":false},"time":"17:18","unixtime":1607188724,"serial":345,"has_update":false,"mac":"A4CF12F3F96E","cfg_changed_cnt":0,"actions_stats":{"skipped":0},"relays":[{"ison":true,"has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"overpower":false,"source":"input"}],"meters":[{"power":3.90,"overpower":0.00,"is_valid":true,"timestamp":1607188724,"counters":[3.844, 3.853, 3.865],"total":146}],"inputs":[{"input":0,"event":"","event_cnt":0}],"temperature":58.04,"overtemperature":false,"tmp":{"tC":58.04,"tF":136.48, "is_valid":true},"temperature_status":"Normal","ext_sensors":{"temperature_unit":"C"},"ext_temperature":{"0":{"hwID":"28ea8b3b3219010e","tC":54.31,"tF":129.76},"1":{"hwID":"28dbbe583219019a","tC":39.12,"tF":102.42}},"ext_humidity":{},"update":{"status":"idle","has_update":false,"new_version":"20201128-103131/v1.9.2@e83f7025","old_version":"20201128-103131/v1.9.2@e83f7025","beta_version":"20201202-141212/v1.9.3-rc3@50c6ab57"},"ram_total":50336,"ram_free":35756,"fs_size":233681,"fs_free":143823,"uptime":2340}
-
Temperatur ("temperature":)\d+.\d+
Besser: das sollte auf alle Werte mit oder ohne Dezimalstellen passen.
\d*\.?\d*
Auf regex101.com kannst Du gut testen
-
@Albert-K
Also die Seite ist bestimmt gut muss ich mich mal reinfuchsen. nun habe ich mal deinen Regex genommen damit habe ich dann nach Power gesucht damit bekomme ich schon mal den aktuellen Stromverbrauch raus. ich werde wohl für jeden wert einen eigenen filter setzen wenn ich das richtig verstehe.Also
Ich habe insgesammt 6 Shelly 1PM
Davon möchte ich den Aktuellen Stromverbrauch. den hab ich gefunden und klappt. Ich freue mich.
Der an der Heizung hat 3 Temperatur Sensoren, alle anderen haben 2.
Ich vermute mit dem String den Du mir geschrieben hast bekomme ich den zweiten Temperatur wert. Und dieser muss wohl auch in einem zweiten Filter abgefragt werden. Sehe ich das richtig? Ich mach nun mal die Stromverbräuche fertig Oh man macht das Spass. das suchen nicht aber das Ergebnis. -
Oh ich glaube ich hab was gesehen mit dem Item kann ich mir die Position suchen die er fragen soll. Das schon mal hilfreich. Damit ich das verstehe. Dann muss ich nur noch für jeden Datenpunkt einen Filter anlegen. Sehe ich das Richtig?
-
Richtig, jeder Wert der in einem Datenpunkt gespeichert werden soll muss einen separaten Parser Eintrag haben.
-
@Albert-K
Leider mag er nicht die gleichen Namen, aber das ist ja auch nicht Tragisch. Außer das ich die Seite noch nicht ganz verstanden habe komme ich aber mit deinem RegEx gut klar und brauche nur anpassen welchen Wert ich benötige. Da sitze ich gerade dran. Ich suche nun noch eine Option die Werte hinter dem Komma mir anzeigen zu lassen. Ist kein muss aber währe genial. Ich Puzzle mir mal die Werte raus. Vielen Dank -
mit dem letzten Regex von mir zeigt er mir aber die Nachkommastellen an! ???
-
@Albert-K
Haha. Klarer voll von langsamen verstehen. hatte noch den ersten RegEx aber halt mit den Punkten die ich wollte. Nun sehe ich auch die Nachkommastellen. Das klappt super. Es Checkt alles wunderbar und kann es in der VIS Darstellen genau so schnell als wenn es im eigenen Netz hängt. Da kann ich bestimmt noch mehr mit abfragen. Werde mich mal mit der Testseite auseinandersetzen. Die beiden Sätzen bringen mich schon weit genug. Vielen Vielen Dank -
Geschafft!!!! Super!!
Könntest Du noch den Thread umbenennen? "[gelöst] entfernte Shelly in iobroker" oder so ähnlich, dann haben andere vielleicht auch was davon
Noch ein Hinweis: Du kannst die Shelly auch über VIS und/oder Blockly schalten. Wenn Du zB das "Bulb on/off" Widget nimmst, hat das unter "Extrasteuerung" zwei Felder für URL bei true und URL bei false. Dort trägst Du dann http requests ein z.B. http://192.168.xxx.xxx/relay/0?turn=on
Das Widget schaltet dann den entfernten Shelly.
Viel Spaß dann noch
PS: RegEx ist schon der Hammer. Ich kratze da auch mehr oder weniger erst an der Oberfläche
-
@Albert-K
Hallo ja sicher. wenn man es erstmal bischen gesehen hat, gehen die befehle schneller. Reg Ex ist noch etwas Übungsfähig, mich interresiert was immer dahinter steckt und wie das geht. aber bis jetzt ist alles was ich wollte Dank Dir erstmal erledigt.
Vielen Dank dafür==> -
Gern geschehen
Kannst den Titel des Threads nicht ändern? Es ging ja nicht um den Shelly Adapter sondern um remote Shelly in iobroker.