NEWS
Url wert mit slider verändern und senden
-
Hallo zusammen,
ich benötige bitte ein wenig Denkhilfe bei meinem folgenden Versuch:
Um eine Lampe innerhalb in meinem Netzwerk zu steuern, wird diese mittels ziemlich altem Mediola per URL angesprochen. In meinem Versuch möchte ich sie mittels eines Sliders dimmen.
Händisch geht das in einem Browser über die IP und einige Parameter. Als Beispiel:
100 % = http://192.168.1.7/command?XC_FNC=SendSC&type=R2&data=58764101AAAA64
0% = http://192.168.1.7/command?XC_FNC=SendSC&type=R2&data=58764101AAAA00Man sieht also, die letzten beiden Zahlen (hexwert) der URL steuern die %.
Wie kann ich jetzt mittels eines Sliders genau diese 2 Zahlen mit einem Hexwert verändern und beim los lassen des Sliders die veränderte URL in meinem Netzwerk an die Lampe senden?
Ich bin leider noch sehr unerfahren mit iobroke, habe es aber schon geschafft selbstständig einen Datenpunkt anzulegen. Allerdings bin ich allgemein sehr IT-erfahren
Beste Grüße
Blue -
@bluethunder Wenn Du das mit NodeRed machen willst - helfe ich Dir gerne - wenn Du eine andere Logikmaschine verwenden willst, dann hilft dir sicher jemand anders. Du musst ja nur den Wert Deines Sliders in einem Datenpunkt speichern.
-
@mickym
Hallo Das mit dem Datenpunkt funktioniert schon recht gut. Also der Slider übergibt einen dezimalen Wert an diesen. Nur wie geht es dann weiter?Ich habe mich bereits schon ein wenig in Blockly reingefuchst, da meine Kinder das auch in der Schule nutzen. Nur weiß ich nicht, wie mein Server belastet wird, wenn ich einer Regel in Blockly sage, dass er einen bestimmten Datenpunkt permanent überwachen soll.
Kann ich auch etwas bewerkstelligen, dass ein Datenpunkt einen Vorgang in Blockly auslöst sobald der Wert in diesem Datenpunkt geändert wurde? Das wäre sehr nice, so würde ich dann auch im Vorhaben recht einfach weiterkommen
Beste Grüße
Blue -
@bluethunder Wie gesagt ich würde hier nicht Blockly weiter machen - sondern mit NodeRed.
Das mit dem Überwachen des Datenpunktes wird automatisch getriggert. Das macht der iobroker selbstständig.
Aber Blockly mach ich ungern weiter - weil ich das puzzln für mich kontraproduktiv finde. Aber da helfen Dir sicher eine Menge Blockly Fans.
In node-Red würdest Du deinen Datenpunkt über eine iobroker-IN Node überwachen:
-
@mickym Na gut - ich werde es mal mit dir mit Blockly machen - aber wie gesagt - ich finde dieses Tool nicht besonders gut, auch wenn es die meisten hier verwenden. Wenn Du noch nicht viel gemacht hast, dann schau Dir node-Red an.
Aber ich werds mal versuchen in Blockly für Dich ansatzweise umzusetzen
So hier das Blockly ist fertig - ich hasse dieses Tool wie die Pest - ich bin nicht in der Lage Text von hinten abzuschneiden oder ein padding zu machen. Ich habs in die JS Funktion übernommen.
Du musst nur noch in das Objekt im Trigger Deinen Datenpunkt eintragen mit dem Dimmwert.
Also weiter werde ich nimmer machen - aber sollte funktionieren.
-
Im Vergleich NodeRed - wieviel übersichtlicher.
-
Oh Gott!
So viel hätte ich jetzt nicht sofort erwartet. Das ist ja tatsächlich schon das komplette Script und .....
es funktioniert tadellos! Wahnsinn!Ich muss leider bei Blockly bleiben, denn ich muss "kompatibel" mit dem bleiben, was meine Kids in der Schule lernen. Hoffe Du nimmst mir das nicht übel.
Was Du hier alles in der kurzen Zeit zusammengeschrieben hast ist echt super Jetzt werde ich mir das ganze noch unbedingt genauer einzeln ansehen, denn ich möchte natürlich auch daraus lernen. Ich war schon am Umwandeln des Strings von Dezimal in Hex gescheitert und war auf der Suche nach einer Lösung.
Ehrlich, bin wirklich geflasht. Echt hammer. Ich danke Dir wirklich sehr
Beste Grüße
Blue -
@bluethunder Na ja - hier wieder einmal ein Beispiel wie man das Padding mit führenden 0 machen will, wenn man das nicht in die JS Funktion einbauen will. Ich finde es umständlich aber nach paar Versuchen hier die Blockly Lösung um einen Stringteil von hinten zu extrahieren.
Wenn Du also das Padding - also das vordere Auffüllen mit 0 bei Werten unter 16 mit Blockly machen willst, sieht das dann so aus:
So jetzt langt es wieder mit puzzeln für die nächsten Wochen.
-
@bluethunder sagte in Url wert mit slider verändern und senden:
Ich war schon am Umwandeln des Strings von Dezimal in Hex gescheitert und war auf der Suche nach einer Lösung.
Bei solchen Dingen wirst du immer auf Javascript angewiesen sein - so was kann Blockly nicht selbst. Ausser Du rechnest das alles selbst aus. Das probiere ich noch mal kurz.
Na mit mal kurz war das nicht - da auch Rekursivität fehlt - aber hier mal mein Versuch, wie ich händisch eine Hexumrechnung mit Blockly machen würde.
Ich finde da Javascript Code fast noch übersichtlicher. - Aber wahrscheinlich kann ein Blockly-Fan das viel schöner machen. Ich mach ja im Prinzip mit Blockly selber nichts.