Shelly Thermometer in anderem WLAN

Ich habe an einem anderen Standort ein Shelly Thermometer. Dort eigener Internet Zugang.
In der Shelly cloud kein Problem.
Homey kann nur meine lokalen Shelly’s einbinden.
Gibt es irgendeinen Weg die Temperatur des entfernten Shelly trotzdem in den homey zu bekommen?
Hätte noch Alexa zur Verfügung. Da sehe ich die Shelly’s auch…
Gibts sowas wie Alexa setzt etwas was homey auslesen kann?

Danke

Ich kenne jetzt das Thermometer nicht genau, aber viele Shellys sind dazu in der Lage, einen Webhook zu senden.
Bitte schau mal in der Shelly App nach.

  • Einstellungen
  • I/O‐ Aktionen
    Hier gibt es verschiedene Möglichkeiten, dass der Shelly eine URL aufruft, sobald sich die Temperatur ändert. Ob auch HTTPS geht, weiß ich nicht. Wenn du da dann einen Webhook an Homey einträgst, sollte das doch machbar sein. Ich hab gerade mal meinen Bewegungsmelder aufgerufen, der hat eine solche Option.

    Ich hab das zwar noch nie gebraucht oder getestet, aber Versuch macht klug.
    Ansonsten bleibt dir noch die Möglichkeit einer VPN Verbindung zum externen Router.

Gute Idee. Aber dazu müsste ich den homey ja von außen erreichbar machen. Also port forwarding.
Sowas versuche ich aktuell zu vermeiden.

Dann bleibt dir nur ein permanenter VPN-Tunnel zwischen den beiden Routern. Das ist auch relativ sicher, da sich von außen niemand einklinken kann. Je nach Routermodell, geht das relativ einfach (Fritzboxen). Ich benutze Wireguard, um eine entfernte Fritze zu warten. Allerdings öffne ich den Tunnel nur bei Bedarf vom Tablet, da ich keine permanente Verbindung brauche.

wäre es auch möglich über Umwege (IFTTT) die Temperatur von der shelly cloud abzufragen und von homey auch wieder abzufragen?
Mein router (ist nur ein mobile router in einem Wohnmobil) kann leider weder VPN noch Dyndns.

Das kann ich dir nicht sagen. Seit IFTTT Geld kostet, hab ich es nicht mehr benutzt. Vielleicht kann dir dabei jemand anderes helfen :man_shrugging:.

Hallo @widameista,

ich habe Deine Frage schon heute Mittag auf der Arbeit gelesen und dachte mir, dass muss doch auch ohne VPN und co. klappen…

Ich habe Deine “Anforderung” wie folgt umgesetzt:

Du benötigst die APP “HTTP request FlowCards” (Achtung, aktuell nicht kompatibel mit SDK3 (ich selbst hoffe noch auf ein Update)
und die APP “Better Logic Library” (Hier musst Du Dir dann die Variable anlegen, welche du mit den Daten füllen willst: App Einstellungen->add Variable-> namen geben, typ aussuchen und speichern.)

Bevor Du einen Flow anlegst, musst du Dir in der Shellycloud einen API Schlüssel anlegen:
https://home.shelly.cloud/#/user_settings

Diesen und den dazugehörigen Server kopierst du dir. (Achtung, diesen nicht veröffentlichen, da sonst jeder mit dem Key zugriff auf Deine Shelly hat)
Außerdem brauchst Du die Device ID von deinem Gerät, dieses findest du in der Cloud in den Geräteeinstellungen.

Als Flow: (Dein Trigger kannst Du ja selbst bestimmen)

In diesem Fall logge ich mich per API bei Shelly ein und hole mit von einem meiner TRV die VALUES als JSON und parse meine vorher ausgesuchte Variable in die entsprechende “Better Logic” Variable. Ab hier kannst du dann machen was Du willst. Auch als Karte über ein virtuelles Device anzeigen lassen.

Um das Json auseinanderzunehmen, gibt ein nützliches Tool namen JSONPATH Online Evaluator.

Hier kannst Du Dir quasi den Pfad zu der Variable, welche Du brauchst zurechschreiben. An meinem Beispiel lautet der Pfad; $.data.device_status.thermostats.*.tmp.value

Das ist die dazugehörige json:

{"isok":true,"data":{"online":true,"device_status":{"thermostats":[{"pos":14.6,"target_t":{"enabled":true,"value":24,"value_op":8,"units":"C"},"tmp":{"value":21.6,"units":"C","is_valid":true},"schedule":false,"schedule_profile":1,"boost_minutes":0,"window_open":false}],"mac":"xxxxxxxxxx","dbg_flags":0,"wifi_sta":{"connected":true,"ssid":"xxxxxxxx","ip":"192.168.xx.xx","rssi":-68},"getinfo":{"fw_info":{"device":"shellytrv-xxxxxxxx","fw":"20220811-152343\/v2.1.8@5afxxxx"}},"fs_size":65536,"time":"20:16","unixtime":1678907767,"charger":false,"calibrated":true,"mqtt":{"connected":false},"fs_free":59344,"uptime":874426,"cloud":{"enabled":true,"connected":true},"fw_info":{"device":"shellytrv-xxxxxxxx","fw":"20220811-152343\/v2.1.8@5afxxxx"},"cfg_changed_cnt":0,"ram_total":97280,"update":{"status":"unknown","has_update":false,"new_version":"20220811-152343\/v2.1.8@5afc928c","old_version":"20220811-152343\/v2.1.8@5afc928c","beta_version":null},"bat":{"value":98,"voltage":3.842},"ps_mode":0,"_updated":"2023-03-15 19:16:07","has_update":false,"actions_stats":{"skipped":0},"ram_free":22648,"serial":1027}}}

Viel Spaß beim ausprobieren.

Solltest Du Hilfe benötigen. Meld Dich gern.

1 Like

@schmucke
Vielen dank, das war sehr ausführlich.
habe folgendes gemacht:

  1. api key, shelly server und devide id geholt
  2. variable angelegt in better logic als String
  3. flow erstellt
    image
    da kommt nur ein fehler beim testen.

mir ist bewußt dass:
$.data.device_status.thermostats.*.tmp.value
der falsche aufruf für das Shelly H&T ist. aber wie lautet der richtige Aufruf, oder habe ich noch was übersehen?

Ich habe in Betterlogic Number genommen.

Kannst du die URL mal im Browser aufrufen und den Inhalt hier als Code posten? Ich würd das gern mal nachstellen.

Du kannst die MacAdresse und co gern anonymisieren.

$.data.device_status.tmp.value

habs gelöst. danke dir. das war das richtige

$.data.device_status.tmp.value

Ich wollte es gerade schreiben :wink:

Ganz kurz noch mal. @widameista

Du brauchst weder Better Logic noch HTTP Request Flow Cards. Das Ganze geht auch mit Boardmitteln “Logic”. (Ich bin darauf aufmerksam gemacht worden, als ich nach einem Update für HTTP Request Flow Cards gefragt habe…)

JSON abholen → Antwort mit dem PATH auslesen → Als Variable speichern.

1 Like

Ich verstehe nicht, warum Athom keine Incoming XYZ Trigger-Karte zur Verfügung stellt.

Der Unterschied zwischen den HTTP Request Flow Cards und Deinem Flow ist ja, dass die HTTP RFC sofort den Flow auslösen sobald eine Anfrage rein kommt und bei Deinem Flow ja “nur” Alle x Minuten abgefragt werden kann. Oder sehe ich das falsch?
In einige Fällen reicht Alle x Minuten sicherlich aus, aber dennoch wäre es schön, wenn ein Flow bei einer reinkommenden Anfrage sofort auslösen würde.

Danke. Werde ich Testen.
Aktuell sieht es so aus :slight_smile:

1 Like

Das hat Homey auch erkannt. Es wird ja demnächst eine API zur Verfügung stehen, welche auch übers Web ohne Portforwarding funktionieren wird.

Es wird mit sicherheit auch jetzt schon Möglichkeiten geben. Ich persönlich habe aktuell keinen Fall wo ich etwas aus dem Internet nach Hause triggern muss. Ich kann mein Zeug auch von Zeit zu Zeit abholen.

Ansosnten schau mal hier:

aber auch nciht aus dem Internet

1 Like


bei mir kommt der "Stelle eine HTTP-Get anfrage nicht zurück. bleibt ohne fehler hängen…

Wenn du auf den unteren Teil klickst, kommt nach dem Ausführen das JSON bei Dir an?

ja kommt:
image

jetzt gehts auch weiter… keine Ahnung was da vorher war.

Danke nochmal!