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
    haus-automatisierungH
    @bitwicht sagte in Plötzlich ReferenceError: request is not defined: Den Schedule habe ich zum Test gesetzt da ich mir auf die Schnelle nicht zu helfen wusste :-) Wenn Du gar keinen Trigger drumherum baust, wird die gesamte Logik ja bei jedem Script-Start einmalig ausgeführt. Dann musst Du gar nicht warten.
  • 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?
  • [Gelöst] UDP Befehl über Node-Red

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    5k Aufrufe
    S
    Ich schau mir das Wochenende mal an. . Für Node-red gibt es inzwischen auch eine Loxone Erweiterung. . Gruß Holger. Gesendet von meinem SM-G930F mit Tapatalk
  • Exec Funktioniert nicht

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    3k Aufrufe
    kmxakK
    ! ```` [ { "id": "7419bfb6.fe762", "type": "exec", "z": "e608e40d.eacc3", "command": "python /opt/test/iobroker.rfid/script/rfid.py", "addpay": false, "append": "", "useSpawn": false, "timer": "", "name": "python /opt/test/iobroker.rfid/script/rfid.py", "x": 440, "y": 200, "wires": [ [ "6a522737.9a8b58" ], [ "4aeaa22d.0f8e24" ], [ "c1e524b1.858bf" ] ] }, { "id": "6a522737.9a8b58", "type": "debug", "z": "e608e40d.eacc3", "name": "", "active": true, "console": "true", "complete": "true", "x": 750, "y": 143, "wires": [] }, { "id": "c1e524b1.858bf", "type": "debug", "z": "e608e40d.eacc3", "name": "", "active": true, "console": "true", "complete": "true", "x": 820, "y": 240, "wires": [] }, { "id": "4aeaa22d.0f8e24", "type": "debug", "z": "e608e40d.eacc3", "name": "", "active": true, "console": "true", "complete": "true", "x": 890, "y": 180, "wires": [] }, { "id": "57b8f669.2b64f", "type": "inject", "z": "e608e40d.eacc3", "name": "", "topic": "", "payload": "true", "payloadType": "bool", "repeat": "", "crontab": "", "once": true, "x": 130, "y": 220, "wires": [ [ "7419bfb6.fe762" ] ] } ] Hier der Code im Debug steht rein gar nix. Habe nun mal den Debug auf dem Injekt gesetzt und geschaut ob da was kommt und das tut es. also läuft das exec nicht wie vermutet EDIT: So geht es und es kommt eine Ausgabe! Ob es alles richtig ist weiß ich allerdings noch nicht :mrgreen: >! ```` [ { "id": "7419bfb6.fe762", "type": "exec", "z": "e608e40d.eacc3", "command": "python", "addpay": false, "append": "/opt/test/iobroker.rfid/script/rfid.py", "useSpawn": true, "timer": "", "name": "python /opt/test/iobroker.rfid/script/rfid.py", "x": 440, "y": 200, "wires": [ [ "44e6c2bc.2f9934" ], [ "cf0e0d61.e0f6b" ], [ "a81ff54e.6a04f8" ] ] }, { "id": "57b8f669.2b64f", "type": "inject", "z": "e608e40d.eacc3", "name": "", "topic": "", "payload": "true", "payloadType": "bool", "repeat": "", "crontab": "", "once": true, "x": 130, "y": 220, "wires": [ [ "7419bfb6.fe762" ] ] }, { "id": "44e6c2bc.2f9934", "type": "debug", "z": "e608e40d.eacc3", "name": "", "active": true, "console": "true", "complete": "true", "x": 800, "y": 160, "wires": [] }, { "id": "cf0e0d61.e0f6b", "type": "debug", "z": "e608e40d.eacc3", "name": "", "active": true, "console": "true", "complete": "true", "x": 900, "y": 200, "wires": [] }, { "id": "a81ff54e.6a04f8", "type": "debug", "z": "e608e40d.eacc3", "name": "", "active": true, "console": "true", "complete": "true", "x": 880, "y": 340, "wires": [] } ]
  • Photovoltaik Script

    Verschoben
    41
    0 Stimmen
    41 Beiträge
    6k Aufrufe
    apollon77A
    Spontan tippe ich das es Fälle gibt wo dein Request in einen Fehler läuft. Dann ist "body" leer. Das wird aktuell im Skript aber nicht abgefangen. Und scheinbar fängt es die cheerio-Library beim Aufruf $ = cheerio.load(body); auch nicht ab. Ich würde ja noch ein "if (body) { …}" in den request einbauen oder wenigstens noch den responsecode prüfen - der ist bei den Fehlerfällen bestimmt auch nicht 200 ... Also hier fehlt einfach Fehlerhandling :-)
  • [Frage] In eine Datei Schreiben

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    830 Aufrufe
    M
    RPI funktioniert mit Orange Pi nicht richtig. Ich habe es ausprobiert.
  • SetState() nach createState() schreibt nichts?

    Verschoben
    31
    0 Stimmen
    31 Beiträge
    7k Aufrufe
    ruhr70R
    Puh… Danke!!! na, da habe ich ja was zu tun ;-)
  • Problem mit Bewegungsmelder

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    S
    Das Script "Foto von Cam an Telegram" ist unter common angelegt. Das Script "Licht schalten" unter der Gruppe Haus. Falls das hilft?
  • [Frage] CURL Befehl ausführen

    Verschoben
    15
    0 Stimmen
    15 Beiträge
    8k Aufrufe
    AlCalzoneA
    @afroasiate: Verstehe nicht wie ich in JavaScript die Hochkomas setzen muss damit er den String annimmt. ` // nmap 192.168.100.0/24 -sP | grep report | awk '{print $5 " " substr($6,2,15) }' var abfrage = 'nmap 192.168.100.0/24 -sP | grep report | awk \'{print $5 " " substr($6,2,15) }\''; Du musst die einfachen Anführungszeichen deines Strings escapen mit Backslash, damit sie nicht als Ende des Strings aufgefasst werden.
  • [Gelöst] Memory Problem beim ausführen von Javascript Code

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    751 Aufrufe
    A
    Leider ist das Problem damit nicht gelöst. Der RAM ist heute Nacht wieder vollgelaufen.
  • [Gelöst] Schleife langsamer ausführen

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    T
    VIELEN DANK ^^ Funktioniert bestens. Noch eine Frage nebenbei. Ich habe einen Datenpunkt als Zahl, die Unit habe ich leer gelassen, da nicht nötig. Min 0 Max 100. So kann ich sagen Alexa Stelle Stufe auf 7. Das komische ist, dass dann als Wert 7.0000001 übergeben wird. Aber warum??? Bei 3 ist es genau 3. Habe das im Code mit Math.round gelöst. Kann man einem Objekt im vorraus Nachkommastellen streichen lassen? Ist das mit der 1 am Ende ein Fehler von Alexa oder dem Cloud Adapter? Falls noch jemand Infrarot Geräte hat und so ein Code benötigt: ! ```` var Stufe; var interval; var timer = null; var anzahl; function CountDownPlus(s) { //Funktion Taste Plus im Abstand 1 Sekunde drücken. setState("broadlink.0.learnedSignals.Ventiplus",true); s--; timer = setInterval(function () { if (s > 0) { setState("broadlink.0.learnedSignals.Ventiplus",true); s--; } else { if(timer) clearInterval(timer); } }, 1000); } ! function CountDownMinus(s) { //Funktion Taste Minus im Abstand 1 Sekunde drücken. setState("broadlink.0.learnedSignals.Ventiminus",true); s--; timer = setInterval(function () { if (s > 0) { setState("broadlink.0.learnedSignals.Ventiminus",true); s--; } else { if(timer) clearInterval(timer); } }, 1000); } ! on({id: "javascript.0.Wind"/javascript.0.Wind/, change: "any"}, ! function (obj) { var x = obj.state.val; //Übergebener Wert von der .Wind ID x = Math.round(x); //Nachkommastellen wegkürzen Stufe = (getState("javascript.0.Stufe").val); //Aktuelle Stufe Stufe = Math.round(Stufe); ! if (Stufe < x) { anzahl = x - Stufe; ! CountDownPlus(anzahl); ! Stufe = x; setState("javascript.0.Stufe", Stufe); //Neue aktuelle Stufe ! } else if (Stufe > x) { anzahl = Stufe - x; CountDownMinus(anzahl); Stufe = x; setState("javascript.0.Stufe", Stufe); }});
  • Script für Klingel

    Verschoben
    42
    0 Stimmen
    42 Beiträge
    9k Aufrufe
    D
    Jemand eine Idee wie er die einzelnen Klingelvorgänge addiert??
  • HTML parsen

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    WalW
    Danke, funzt. :lol:
  • Fade LED?

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    AlCalzoneA
    Prinzipiell macht das Sinn. Wenn du auf dem Raspberry Pi unterwegs bist, sieh zu, dass du einen der PWM-fähigen GPIO-Ports verwendest (die können ein analoges Signal simulieren). Die meisten GPIO-Ports können nämlich nur an und aus. Alternativ kannst du einen externen RGBW-Dimmer z.B. über zWave ansteuern. Da kommt aber ein bisschen Hardware dazu. Der Fibaro RGBW kann z.B. einzelne Ports über einen konfigurierbaren Zeitraum ein- und ausfaden.
  • Skript von Hand starten?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    P
    Hallo, man kann gleich das Objekt Skriptname_scriptEnabled nutzen und per Vis schalten. Ist auch boolean. Pix
  • [Frage] Googlekalendereintrag erzeugen mit Script

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    arteckA
    @bahnuhr: @arteck: also ich bitte euch …bissel Eigeninitiative.. ich weiss das es geht gemacht hab ich es auch nicht nicht... http://www.googleappsscript.org/calendar-services/create-calendar-events-by-submitting-form ich werde auch keinen fertigen Code liefern.. ` Also, Eigeninitiative habe ich ne Menge und das fehlen einer solchen lasse ich mir auf keinen Fall vorwerfen: api reference versucht zu lesen (da auf Englisch) Diese übersetzt in Deutsch. Beispiele von Google api angeschaut. Diese passen aber nicht zu JavaScript bei iobroker. Versucht diese nach iobroker zu kopieren und umzuschreiben. Hat aber nicht geklappt. zu Thema "Bilder von Google Kontakten" issus bei Entwickler von tr064 erzeugt (auf github). Dieser wollte auch helfen. Hat es aber selber nicht hinbekommen. Thema wurde dann vertagt bzw. geschlossen. avm angeschrieben; nur Standard Antworten zurück. Dann nochmal tiefer nachgefragt; trotzdem keine konkrete Antwort. Fazit von mir: jede menge Eigeninitiative -> Entwickler von tr064, AVM eingebunden, threads hier im Forum Konkrete Hilfe gab es bisher nicht -> von keinem. Du schreibst: …es geht .... code liefere ich nicht ! Klasse Anwort, muss ich schon sagen. mfg von einem der trotz viel Eigeninitiative dies bisher nicht hinbekommen hat. ` verstehe mich bitte nicht falsch.. iobroker ist halt eine Bastellösung.. es sind Leute beteiligt die ES NICHT HAUPTBERUFLICH machen.. deshalb auch die "Eigeninitiative".. es ist mir auch klar, dass es nicht Programmierer schwer ist was zu entwickeln…. ich habe vor Jahren was in die Richtung gemacht.. deshalb auch von mir "ich habe keinen fertigen Code dafür" ich müsste mich da selber hinsetzten .. da ich aber auch eigene Projekte habe die höhere Prio haben als dein Kaleder ... sry.. ich dachte ich kann dir was an die Hand geben... :roll:
  • SetState funktioniert nicht mehr

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    933 Aufrufe
    AlCalzoneA
    1. hinter log(…) fehlt ein ; 2. was sollte denn passieren? Für mich sieht der Log normal aus. Wenn setState ohne Fehler durchläuft bekommst du davon normalerweise nichts mit. Wenn du "614" nach erfolgreichem setState ausgeben willst, musst du das im Callback machen: setState( "tr-064.0.states.ring", '**611,20', function() {log('614');} );
  • [Gelöst] Zugriff auf Adaptereinstellungen von Javascript

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    686 Aufrufe
    BlackmikeB
    vielen dank, das war der ansatz, den ich gesucht habe… nu kann ich mal bisschen coden. greetz, Black
  • [Gelöst] Blockly: Setzen einer Variablen sobald ein Zustand wahr ist

    Verschoben
    18
    2
    0 Stimmen
    18 Beiträge
    7k Aufrufe
    rantanplanR
    @RandyAndy: Was isch benötige ist eine Art Gruppenverwaltung mit x Gruppen (derzeit 3). Ziel ist es 3 Stockwerke unabhängig zu kontrollieren, wobei die Gruppe 1 nur den 2 Stock kontrollieren kann, die Gruppe 2 nur den 1. Stock und die Gruppe 3 nur das EG. am besten per Password. Gibt es sowas ? ` Prima das es klappt. Die Frage gilt aber für Vis nicht für Blockly. Bitte dafür neuen Thread erstellen und in Deinem 1. Beitrag, in diesem Thread, [gelöst] in den Titel setzen. Grüße
  • Zweite javascript Instanz

    Verschoben
    14
    0 Stimmen
    14 Beiträge
    2k Aufrufe
    GoerschG
    hier bitte nichts mehr posten - Problemchen ist hierhin verschoben worden : http://forum.iobroker.net/viewtopic.php?f=22&t=6057
  • [Problem] Ungewollte SayIt-Ansage nach ioBroker-Neustart

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    915 Aufrufe
    paul53P
    @dtp: Gibt es keine Möglichkeit, den Neustart von ioBroker abzufragen und dann eine entsprechende if-Abfrage einzufügen? ` Genau das passiert mit der zusätzlichen Auswertung von startDelay. Da mit ioBroker-Neustart alle Adapter und somit alle Skripte gestartet werden, wird startDelay erst auf false und nach 10 s auf true gesetzt. Folglich können Wertänderungen der Vitotronic-Datenpunkte innerhalb der ersten 10 s nach ioBroker-Neustart keine Reaktion (sayit) auslösen.
  • [Frage] Blockly - "if" mit Wochentage eingrenzen

    Verschoben
    22
    3
    0 Stimmen
    22 Beiträge
    5k Aufrufe
    S
    Jein. Das was du gesagt hast war schon der Fehler. Habe dann beim Trigger Zeitplan noch einen Fehler eingebaut, weil kein Leerzeichen zwischen den Sternen war.

722

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge