Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.5k Themen 213.3k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    A
    @azzkikrboy Hattest du zum Monatswechsel eine Störung? Die Daten werden in der Nacht am 01. des jeweiligen Monats gelöscht, wenn das Skript läuft und nicht gerade gestoppt wurde.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    I
    @peterfido Danke! Das wäre eine weitere Alternative, wenn ich mit dem TadoAdapter am Ende scheitere. Dann würde ich den Weg gehen wollen, das ganze via Matter zu lösen. Hab oben ja schonmal kurz erwähnt, dass ich schon einen Sonoff MG25 Thread Dongle hier liegen habe. Den habe ich allerdings noch nicht geflasht und im PI eingerichtet. Wenn es nur der Batteriestatus ist der fehlt, damit könnte ich leben. Den könnte ich mir ja dann immernoch aus dem TadoAdapter nehmen, wenn ich das möchte
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • [Frage] Wecker Uhrzeit Änderung Shedule funktioniert nicht korrekt

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    662 Aufrufe
    paul53P
    Wo hast Du die Variablen timer, idZeit, h und m deklariert ? var idZeit = '...'; var timer = null; var h; var m; ...
  • Kann Webrequest in Blockly nicht auswerten

    Verschoben
    16
    1
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    DutchmanD
    @pino: Die Leerzeichen waren das Problem. Start: true :Ende Vielen Dank noch mal für Deine Hilfe. ` Gut zu wissen, jedenfalls schöne Hilfe mit debug sollte jemand Mal dasselbe Problem haben [emoji6] Btw: wenn da false steht erwartet man auch damit rechnen zu können [emoji23] Happy coding! Sent from my iPhone using Tapatalk
  • Node Flow schaltet cuxd nicht?!

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    F
    Susi. Danke, das wars. Im iobroker-Node von value auf command gestellt und schon geht es. Mit freundlichen Grüßen Fatfred
  • [Gelöst] Per script bestimmten wert aus object laden

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    966 Aufrufe
    DutchmanD
    Danke @Paul53, das war die lösung und ich fühl mich wie ein idioot :mrgreen:
  • [gelöst]Skript soll nur EINMAL auslösen: wie?

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    841 Aufrufe
    DutchmanD
    @skorpil: Daaanke an alle. Läuft! ` Super, schreibe bitte gelöst in den thread Title @Pix, Danke kannte ich noch nicht wieder was gelernt Sent from my iPhone using Tapatalk
  • [Gelöst] Frage zu compareTime

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    4k Aufrufe
    paul53P
    @bahnuhr: Dann in deinem Script: var Zeit1 = isTimeInRange('09:00:00', '20:00:00'); Wenn das Ergebnis dann false, dann bist du in deinem Zeitraum 20-09 Uhr. ` Diese Methode funktioniert auch mit dem nicht korrigierten compareTime() if(getState("javascript.0.Schlafmodus.Schlafmodus_Status").val && !compareTime("09:00", "20:00", "between") && getState("javascript.0.Automation.Automatikfunktioen").val) oder if(getState("javascript.0.Schlafmodus.Schlafmodus_Status").val && compareTime("09:00", "20:00", "not between") && getState("javascript.0.Automation.Automatikfunktioen").val)
  • Skript will sich einfach nicht ausführen lassen

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    S
    Danke für die vielen Antworten, hat jetzt geklappt :) Habe jetzt ne mobile UI über die ich per Button meine Funksteckdose an und ausschalten kann. gruß scooop
  • Werte aus Webseite auslesen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    5k Aufrufe
    DutchmanD
    @0018: @Dutchman: , eventueel koenntest du noch im http get nur die station abfragen welche du brauchst verbrauch dan bisschen weniger ressourcen anstaat nur diesen wert aus der ganzen liste zu lesen. ` Wie genau muss ich das anstellen? ` durch an deinen link bij station.sj nog id=>UUID<& hinzu zu fuegen. Also z.b.: jetzt (alle daten) https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?includeTimeseries=true&includeCurrentMeasurement=true nur die daten von Edeltalsperre https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?ids=EDERTALSPERRE&includeTimeseries=true&includeCurrentMeasurement=true Zie API erklaehrung: https://www.pegelonline.wsv.de/webservice/dokuRestapi Zugriff auf bestimmte Stationen: /stations.json?ids=BONN,2730010 Bestimmte Pegel. Für die IDs kann eine Pegelnummer, ein Pegelname oder eine UUID verwendet werden.
  • Zu blöd für "wenn eins oder mehrere aus mehreren = true dann"… / Fensterskript

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    639 Aufrufe
    T
    Danke dir. Leider hilft es aber nicht, da dieses Skript genau das tut, was ich nicht brauche/will: es iteriert durch alle Kontakte im Gewerk "Fenster" bzw Verschluss aus der CCU2. Ich will ja statt 25 Fensterkontakte abzufragen mit blöden Namen nur 9 Räume abfragen aus Systemvariablen der CCU2. Aber auch ganz grundsätzlich interessiert mich, wie man bei JS eine if Abfrage mit vielen "oder"-Varianten kreiiert. Danke und Grüße
  • [Problem] Nach Systemstart Steuerwerte NaN

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    423 Aufrufe
    apollon77A
    Hey, naja nicht wirklich glaube ich. Du musst nur was einbauen das die Werte auch bei Skriptstart gelesen werden wenn Du Sie lokal brauchst. Das CreateState wird eigentlich nur ein einziges mal am Anfang ausgeführt und damit auch der Default.-Wert nur einmalig gesetzt. Sobald das State da ist passiert da nix mehr
  • Warte bis "true" dann führe Aktion aus.

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    DutchmanD
    @paul53: @Dutchman: Logic mit nem PING und erst wen der PING den onkyo findet schalten Dafür gibt es den ioBroker.ping Adapter. Den ping-Erfolg kann man einfach [http://forum.iobroker.net/viewtopic.php?f=21&amp;t=5914#p60755](http://forum.iobroker.net/viewtopic.php?f=21&amp;t=5914#p60755) auswerten. Danke Paul hab ich total ubersehen in aller eile ! @riconr1: das Angebot nehme ich gerne an. So ein Beispiel würde mir doch sehr helfen. MfG Enrico ` Machen wir dafuer gibt es ja communitys :D Also hier mal ein blockly wobei ich ganz einfach den status eines HM schalters ueberpruefe ober er an oder aus ist. Ist der schalter an = direckt commando auf wert fuer Onkyo receiver Ist der Schalter aus = Delay beim einschalten des onkyo [image: 979_simple_blockly.jpg] Hier der code um diesen block in dein system zu kopieren: ! <block xmlns="http://www.w3.org/1999/xhtml" type="controls_if" id="?5f2Q;%s3J)j`=w+(JJm" x="113" y="112.99999999999994"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="qcKV[)q6u}?V#KQ=%Z9^"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Q@vB@|0x82t1MV(4_K#D"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.MEQ0165864.2.STATE</field></block></value> <value name="B"><block type="logic_boolean" id="Mt^s4uN(2xfLS{3s,#cC"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="update" id="4a[{alj:Vq2aGq@!|n[~"><mutation delay_input="false"></mutation> <field name="OID">harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="gA)m;Nv-1-4JRZCz{)w="><field name="TEXT">1</field></block></value> <next><block type="comment" id="{=BTv2=d]A!Y8yG^:I4]"><field name="COMMENT">Bei kontrolle schalter = AN kein delay schalte</field></block></next></block></statement> <value name="IF1"><block type="logic_compare" id="M]xH9[ITv+6Nc{,Kc1+F"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6xrYTG:3rg=YzM`u9-_w"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.MEQ0165864.2.STATE</field></block></value> <value name="B"><block type="logic_boolean" id="7Lpn`xX+)/].)XML6/qo"><field name="BOOL">FALSE</field></block></value></block></value> <statement name="DO1"><block type="comment" id="~6?Ql)MAmo);:Y3d!b+5"><field name="COMMENT">Bei kontrolle schalter = AUS schalte mit delay</field> <next><block type="timeouts_settimeout" id="^tFK[S8%S)zp%d5;,r-f"><field name="NAME">timeout</field> <field name="DELAY">1000</field> <statement name="STATEMENT"><block type="update" id="kU~2dFzbn3M5@__qyh4^"><mutation delay_input="false"></mutation> <field name="OID">harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="6!J?[c)l#ii*_{;b}|yf"><field name="TEXT">1</field></block></value></block></statement></block></next></block></statement></block> ! Und als script: var timeout; if (getState("hm-rpc.0.MEQ0165864.2.STATE").val == true) { setState("harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn"/*Onkyo_AV_Receiver:PowerOn*/, '1', true); // Bei kontrolle schalter = AN kein delay schalte } else if (getState("hm-rpc.0.MEQ0165864.2.STATE").val == false) { // Bei kontrolle schalter = AUS schalte mit delay timeout = setTimeout(function () { setState("harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn"/*Onkyo_AV_Receiver:PowerOn*/, '1', true); }, 1000); } Pass aber bitte auf dies ist nur ein teil der loesung naemlich logik ueberpruefe den statu der steckdose und schalte demnach den verstaerker. Jetzt musst du noch: Bestimmen wie du dieses script startest, z.b. eine variable anlegen welche due mit scene adapter auf true setzt. Javascript reagiert dan z.b. auf diese variabele Wen in deiner scenen logic auch das einschalten der steckdose aufgenommen ist, muss dieses script natuerlich davor laufen :) Da ich deine situation nicht genau kennen etwas schwierig genau die schritten oder ein end-to-end loesung als beispiel zu geben. Ich gehe jetzt mal dumweg davon aus das dus alles mit scenen geschaltet has und nur logic fuer delay einschalen verstaerker hinzufuegen moechtest ? Es waere auch logissch die stekdose in der ElseIf einzubauen. Den trigger/art von script und in welche kombination haengt von deinen wunsch und realisierung ab :) Also: Mach dir einen plan wie deine scenario aussieht und unter welchen bedingungen was gemacht werden soll Ist dir egal op script/blockly oder scene oder hast du da wuensche ? Wen ja macht dir nen plan was wohl und nicht geht z.b. scene und anders geloest werden muss (wie if/then delay) Definieren was dein trigger sein wird, ein script muss auch gestartet werden das geht z.b. per variabelen aenderung, PS: mit scene kannst du auch ein script an oder ausschalten, z.b. die blocke welche ich gepostet haben. Dan verlegtst du das einschalten des receiver auf ein script, diesen script activierst du mit deiner scene und am ende noch block hinzufuegen script wieder aus. habe nochmal nachgedacht ueber den ping, das wird nicht gehen. Bei mir getested und wie befuerchtet is der ping schneller da als das onkyo auf ein IR signal reagiert. Da er aber immer glaich lang zum starten brauch ist ein fester delay schon OK denke ich mal ? Greetz, Dutch
  • Blockly Hilfe 2 Objekte schalten

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    959 Aufrufe
    D
    Ja das hängt mit der Trägen reaktionszeit des BM zusammen und soll später ausgeschmücht werden. aber das ist ja eigentlich egal oder nicht ? trotzdem müsste der switch doch geschaltet werden oder nicht ?
  • [Problem] Ansteuerung aller Dimmer im Haus

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    AlCalzoneA
    stimmt… hatte ich nicht bedacht!
  • [Frage] Schleife über alle Komponenten eines Typs

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    961 Aufrufe
    F
    Danke, das hat mir sehr geholfen
  • [Problem] Zeitverzögerte Wiedergabe mit Sayit

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    651 Aufrufe
    T
    Auf was für einem System erfolgt denn die Ausgabe der mp3? Sonos? Grundsätzlich erscheint mir inzwischen, nachdem ich in anderen Bereichen auch mit SayIt rumprobiert habe, es sinniger, sayit zu umgehen wenn es um eine ohnehin vordefinierte mp3 geht und nicht ein variabler Text gesprochen werden soll.
  • [Frage] HTTP POST - Cookie einfügen ? (Sony TV)

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    AlCalzoneA
    Wenn ich das richtig sehe, solltest du die manuelle Cookie-Zuweisung nicht brauchen, wenn du beim initialen Request jar:true festlegst. Aber wenns funktioniert, ist das schon mal was.
  • [Gelöst] Objecte erstellen aus JSON tabelle

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    DutchmanD
    @ruhr70: @Dutchman: sowohl wen ich direct aus dem request lesen mochte als wen ich die daten vorher in einen state wegschreibe un daraus lese. ` Du versucht wahrscheinlich einen String zu verarbeiten? Probier mal in Deiner Abfrage: var objekt = JSON.parse(results); Auch wenn Du den Wert mit getState liest solltest Du den String in ein Objekt umwandeln: JSON.parse(getState(javascript.0.objekt).val); Wenn Du ein Objekt schreibst: setState(javascript.0.objekt,JSON.stringify(obj)); ```` ` Danke dir, waren vast zeitgleich :) Mit JSON.parse hat sich das problem erledigt.
  • [Gelöst] Trigger auf state change innerhalb einer gruppe mit rueckgabe der id

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    DutchmanD
    @ruhr70: probier mal: on({id: /^javascript\.\d\.domoticz\.\d+\.STATE$/ , change: "ne"}, function (obj) { var value = obj.state.val; var objArr = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD var device = objArr[2]; log("device: " + device +" - State: " + value); }); ```` ` Super danke das hat geklappt ! Falls es jemand gebrauchen kan, script reagiert auf trigger innerhalb der gruppe und abhaenging von status verschikt er ein commando per URL: // on({id: /javascript\.0\.domoticz\..*\.STATE/, change: "ne"}, function (obj) { on({id: /^javascript\.\d\.domoticz\.\d+\.STATE$/ , change: "ne"}, function (obj) { var value = obj.state.val; var objArr = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD var device = objArr[2]; log("device: " + device +" - State: " + value); log(device); var URL = 'http://192.168.1.152'; var port = '8080'; if (getState("javascript.0.domoticz." + device + ".STATE").val == '1') { try { require("request")( URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=On'); } catch (e) { console.error(e); } console.log("request: " + URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=On'); } else { try { require("request")(URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=Off'); } catch (e) { console.error(e); } console.log("request: " + URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=Off'); } });
  • [gelöst] Komisches Verhalten bei HM-Rolläden

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    788 Aufrufe
    ldittmarL
    Ich hatte mein Raspi neu gestartet, ioBroker stop/start, die RPC-Adaptern neu gestartet und nichts ging.. jetzt habe ich die neue Version 1.4.6 vom RPC installiert und schon funktioniert alles wieder :-) - Danke euch Grüße, ldittmar
  • [Frage] Telegram Bot mit Buttons ausstatten.

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    kmxakK
    ich kann das script ja nur auf true oder false setzen. habe ich da gerade einen denkfehler? würde mit texttocommand nun das script auf true setzen und danach rennt es ja weiter nochmal true setzen bringt doch nix. müsste es dann intern im script sich selber wieder ausschalten lassen. oder?

510

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge