NEWS
HTTP Request in IO Brocker über Blockly realisieren
-
Halli ihr lieben.
Ich bin hier ganz neu und absolut unerfahren reingeschliddert.Ich möchte gerne an IO Broker einen HTTP Request senden um dann in Blockly eine Aktion über Alexa auszuführen.
Blockly klappt soweit mit dem Klicki Klicki.
Allerdings hab ich noch nicht verstanden wie ich an den IO Broker einen HTTP Request senden kann der dann von Blockly als Trigger genutzt werden kann.Kann mir hier jemand den richtigen Denkanstoß geben?
Liebe Grüße.
-
eventuell über einen manuell erstellten Datenpunkt, den du über den simple-api Adapter ( https://www.npmjs.com/package/iobroker.simple-api) änderst und die Änderung dann in Blockly als Trigger.
-
wenn es im wlan ist den simple-api adapter
ohne wlan - iot adapter -
okay
Dankeschön an alle.
Ich probiere damit al ein bisschen rum.
Wenn ich das richtig verstehe läuft das so:
http://<IOBrokerIP>:8087/test
wenn ich bei Blockly jetzt [test] im Trigger auf den Adapter hinterlege, müsste das Blocklyscript die gewählte Aktion ausführen?
Oder muss ich noch was beachten oder anders machen?
Da soll erstmal nur sowas belangloses rein gehen wie wenn jemand den schlüsselchip an die doorbird hält das ne durchsage kommt das XY Die tür geöffnet hat
Dazu kann ich in der Doorbird ja nen neuen http befel anlegen der aufgerufen wird wenn Chip XY drangehalten wird.(Doorbird öffnet bei Nuki auch über den http befehl, aber man kann ja mehrere adressen nacheinander aufrufen)
Ach ja und soll erst mal alles nur ocal erfolgen...
Bei iot von io broker braucht man ja glaub ich premium, was sich derzeit nur wegen der klingel nicht lohnt. -
@romano-drews
nicht wirklich - siehe hierhttps://github.com/ioBroker/ioBroker.simple-api
du kannst direkt einen datenpunkt ansprechen und darauf triggern
-
http://ipaddress:8087/set/stateID?value=1
stateID ist der Datenpunkt den Du ansprechen möchtest, value der Wert den Du setzen möchtest.
-
@mickym puh das verstehe ich noch nicht so wirklich.
ich möchte ja durch das aufrufen keinen wehrt setzen sondern der aufruf selbst soll gewehrtet werden.
Also die doobird ruft den link auf und io broker soll das erkennen und daraufhin reagieren.
irgendwie scheine ich das noch nicht so wirklich verstanden haben.
Wenn ich nen wehrt setze muss dieser ja auch wieder zurückgenommen werden damitt er wieder gesetzt werden kann um ihn zum triggern zu benutzen.
Vielleicht kann mir das nochmal jemand so erklähren das ichs kapiere ^^
bin da echt noch ganz am anfang und habe heute den ganzen tag gebraucht einen http request für nuki über nen rfid chip bei der doorbird zu triggern.
Das geht allerdings an IO Broker noch vorbei.Und ich wollte nur einen zweiten trigger link erstellen den die doorbird bei dem einen chip dann mit aufruft damitt alexa sagen kann das der chip zum tür öffnen benutzt wurde.
also bin da gerade noch absolut basic unterwegs.
-
@romano-drews sagte in HTTP Request in IO Brocker über Blockly realisieren:
Ach ja und soll erst mal alles nur ocal erfolgen...
Bei iot von io broker braucht man ja glaub ich premium, was sich derzeit nur wegen der klingel nicht lohnt.Ich glaube das geht auch ohne pro.
Nur sind es da nicht so viele Zugriffe. -
@david-g sagte in HTTP Request in IO Brocker über Blockly realisieren:
@romano-drews sagte in HTTP Request in IO Brocker über Blockly realisieren:
Ach ja und soll erst mal alles nur ocal erfolgen...
Bei iot von io broker braucht man ja glaub ich premium, was sich derzeit nur wegen der klingel nicht lohnt.Ich glaube das geht auch ohne pro.
Nur sind es da nicht so viele Zugriffe.In wiefern viele zugriffe ?
-
Wenn ich nen wehrt setze muss dieser ja auch wieder zurückgenommen werden damitt er wieder gesetzt werden kann um ihn zum triggern zu benutzen.
Nein das muss er nicht. Du kannst ja auch true als Wert setzen - das macht ein Taster auch. Als Trigger prüfst Du nur auf Aktualisierung im Blockly - dann ist der Wert wurscht.
Das heißt Du prüfst nicht auf Wert Änderung sondern nur auf Aktualisierung:
-
http://192.168.20.91:8087/set/stateID?value=1
Dabei bekomme ich das zurück:
"error: datapoint \"stateID\" not found"
Ist das weil ich das gegenstück bei Blockly noch nicht hinterlegt habe ?
Ich steh auf dem schlauch.
-
@mickym sagte in HTTP Request in IO Brocker über Blockly realisieren:
Wenn ich nen wehrt setze muss dieser ja auch wieder zurückgenommen werden damitt er wieder gesetzt werden kann um ihn zum triggern zu benutzen.
Nein das muss er nicht. Du kannst ja auch true als Wert setzen - das macht ein Taster auch. Als Trigger prüfst Du nur auf Aktualisierung im Blockly - dann ist der Wert wurscht.
Das heißt Du prüfst nicht auf Wert Änderung sondern nur auf Aktualisierung:
Okay, und was ich bei objekt id eingebe ist dann was hinter dem = steht?
-
@romano-drews statt stateID gibst Du natürlich den Datenpunkt ein, den Du - unter 0_userdata.0 ein.
Also zum Beispielhttp://192.168.20.91:8087/set/0_userdata.0.test?value=true
-
@romano-drews Objekt ID - wählst Du den Datenpunkt aus, den Du unter userdata erstellt hast und den Du in dem Link wie oben angegeben hast. Das muss natürlich matchen.
Du kannst wahrscheinlich auch das Teil nehmen
Ich bin nicht so fit im Blockly (arbeite ja lieber mit dem Konkurrenzprodukt ; ) )- aber gibt sicher jemand der den Unterschied zwischen den beiden erklären kann.
-
@mickym sagte in HTTP Request in IO Brocker über Blockly realisieren:
So langsam kommt Licht ins Dunkele
Ich habe einen Datenpunkt gefunden.DANKESCHÖÖÖN FÜR DIE VIELE HILFE!!!!
(Kann man dieses 0_userdata verzeichniss nicht in httprequest oder so umbenennen? finde das recht unübersichtlich DoorBird oder Alexa sind ja auch im ordner DoorBird oder Alexa)
http://192.168.20.91:8087/set/doorbird-schluesselchip-doorbird?value=true
Den einen Datenpunkt der da hinterlegt ist in der Ordnerstruktur, hab ich wie oben umbenannt und true als Wehrt gesetzt.
Zwei Fragen:
Frage 1 Setze ich dann über Blockly das true wieder auf false ? (Der optik wegen weil der Klingel Taster springt ja auch wieder auf false wenn gerade nicht gedrückt wird)
Frage 2 Wie kann ich in der Ordnerstruktur jetzt weitere Datenpunkte hinterlegen? ^^
Also das ich mehrere http Requests anlegen kann?
Oder geht da nur ein Knotenpunkt?Aktuell könnte ich ja nur unterscheiden indem ich die Links so gestalte:
http://192.168.20.91:8087/set/doorbird-schluesselchip-doorbird?value=Romano http://192.168.20.91:8087/set/doorbird-schluesselchip-doorbird?value=Andreas http://192.168.20.91:8087/set/doorbird-schluesselchip-doorbird?value=Maximilian http://192.168.20.91:8087/set/doorbird-schluesselchip-doorbird?value=Rosita
Ich hätte es aber lieber sowenn das geht:
http://192.168.20.91:8087/set/doorbird-schluesselchip-Romano?value=true http://192.168.20.91:8087/set/doorbird-schluesselchip-Andreas?value=true http://192.168.20.91:8087/set/doorbird-schluesselchip-Maximilian?value=true http://192.168.20.91:8087/set/doorbird-schluesselchip-Rosita?value=true
Und danach setzt blockly den Status von true wieder auf false
Oder muss die Adapter wenn ich andere Namen will erneut installieren?
-
Wie gesagt, wenn Du auf Aktualisierung triggerst brauchst Du den Wert nicht wieder zurücksetzen. Du kannst ja auch am Zeitstempel sehen, wann er zuletzt aktualisiert wurde.
Du kannst es natürlich.
Du solltest - gerade mit dem Admin5 - selbst erstellte Datenpunkte ausschließlich unter 0_userdata.0 anlegen.
Alle anderen DP - sollen nur von Adaptern selbst beschrieben werden.
Du kannst Dir ja eine beliebige Struktur ausdenken und auch unterschiedliche Datenpunkte anlegen. Du kannst ja einen Folder doorbird unter 0_userdata.0 machen und darunter dann auch verschiedene Datenpunkte, die Du dann mit unterschiedlichen Links aufrufst - oder Du setzt unterschiedliche Werte in einem Datenpunkt, wie Du es oben machst.
Das was Du lieber hättest - entspricht nicht den aktuellen Policies.
0_userdata.0 ist für alle selbst erstellten DP verpflichtend. Das ist so gewollt - damit jeder Entwickler oder generell jeder sieht, dass hier eine nicht definierte Datenstruktur besteht.
-
@mickym Okay Dankeschön
Bis vor kurzem wusste ich nicht mal so wirklich das es sowas wie http request für Smarthome gibt.Bin schon froh das sich das von mir eingetragene gerade unter Objekte in IO Broker ändert
.
Ich nutze zwar seit 6 Jahren smarthome und das auch sehr groß mit 256 Geräten im System.
Allerdings bei der Telekom.
Das ist halt das einfachste vom einfachen.Das aktuell hier ist bei meinen eltern nur für die Klingel, Nuki und Alexa.
Mehr gibts hier noch nicht.Werde aber bei mir zuhause die 256 Geräte auch irgendwann mal in IO Broker umziehen.
Die möglichkeiten die man hier hat sind ja der wahnsinn.Allerdings gelte ich nun wieder als Blutiger Anfänger.
Bei der Telekom im Forum ist das ehr anders rum ^^
Aber da muss man auch nix können wie hier.Aber zurück zum Thema.
Ich weis noch ne Dumme frage, aber ich habe gerade rausgefunden wie ich ordner unter Objekte anlege ^^
Wie muss denn mein http link jetzt aussehen wenn ich auf einen Link im Ordner zugreifen will?mit dem 0_userdata werd ich mich schon abfinden.
Habs nur gerne aufgeräumt und verständlich aufgebaut.
0_userdata werd ich mir aber noch merken können das der Ordner dann für die http links sein wird. -
Du gehst einfach mit der Maus auf die ID - des Datenpunktes den Du ansprechen willst.
Damit kopierst Du diesen Pfad in die Zwischenablage.
Der Pfad zu dem abgebildeten Punkt heißt also: 0_userdata.0.accuWeather.home.daily.Headline.Category
Der Link um diesen Datenpunkt anzusprechen wäre also:
http://192.168.20.91:8087/set/0_userdata.0.accuWeather.home.daily.Headline.Category?value=true
Du kannst doch unter 0_userdata.0 einen Ordner 0_userdata.0.httplinks oder 0_userdata.0.doorbird.http erstellen. Sprich unter 0_userdata.0 kannst Du eine Dir genehme Ordnerstruktur aufbauen. Da bist Du ja nicht eingeschränkt.
Das ist halt alles erforderlich, wenn Du Dich auf blockly festlegst. Ich nutze zum Beispiel NodeRed - damit kann man auch ohne Datenpunkt einen Flow anstoßen. Das aber nur nebenbei - weil Du Dich ja anscheinend schon festgelegt hast.
-
Klick
Ahhhh ich hab die ganze Zeit grade den Ordner den ich erstellt habe noch mit in die URL gepackt also set/ordnername/...
Okay also darf jeder Datenpunkt auch wenn er in verdiendenen Ordnern untergebracht ist nur einmal gleich heißen.
Die Ordner sind dann quasi nur Optisch aber nicht funktional.
Verstanden
NOMALS VIELEN DANK FÜR DEINE MÜHE.
HAT GEFRUCHTETSo ganz langsam blick ich auch durch.
Und klar muss ich das was ich Datenpunkt übertrage nicht zurücksetzen weil Blockly ja auch den Timestamp fragt.
Hab da nur so ne Ordnungsmacke ^^
Frag mich nicht wieso.
Ich muss das irgendwie so haben das der Wehrt nachher wenn ich true gesendet habe das er bei nicht benutzung wieder zurück springt.
Aber das ist ja ne Blockly geschichte.Gibt ja auch noch das mit den Verbindungslinien ( Name grad vergessen )
Was ist denn am besten wenn man nicht programmieren kann?
(Auch wenn ich will, fällt mir selbst programmieren viel zu schwer, da fehlt bei mir verständniss)Blockly hab ich grad mal für den Anfang recht verständlich gefunden, auch wenn man da echt viel Logisch denken muss ^^
Aber so bekommt man ja aus seine Smarten Geräte das Maximum gequetscht als einfach nur stumpf die HerstellerApp zu nutzen.
Und wenn man nicht Programmieren kann find ich so Blöcke ganz Sauber und aufgeräumt.
Wenn es da aber was besseres gibt was man auch als Noop kapiert.
Dann bin ich da gerne für Ratschläge offen.
Wills ja gleich möglichst gut machen, zumindest in dem ramen wie ichs kann. -
@mickym sagte in HTTP Request in IO Brocker über Blockly realisieren:
http://192.168.20.91:8087/set/0_userdata.0.accuWeather.home.daily.Headline.Category?value=true
Bei mir funktioniert der link übrigens auch so:
http://192.168.20.91:8087/set/testdatenpunkt?value=OFF
Obwohl sich der testdatenpunkt im Ordner 0->testordner befindet
brauche bei mir das mit den punkten dazwischen gar nicht.