Skip to content

Skripten / Logik

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

16.5k Topics 213.2k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    P
    Oben steht, dass der Server öfter mal offline ist. Da ist ping meine erste Idee. Ob der Server auf Pings antwortet, weiß ich nicht. Reagiert der Server nicht auf ping, dann evtl. als Ersatz einen httpcheck nehmen. httpcheck nutze ich auf der Synology, bevor die auf den ioBroker zugreift. # ===== HTTP-Check statt Ping ===== curl -s --connect-timeout 3 "$BASE/system.adapter.admin.0.alive" > /dev/null || exit 1 Ist allerdings ein Bash-Skript. Das muss für die Zwecke angepasst werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    S
    @TT-Tom Vielen Dank für den Tip.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • [Gelöst] UDP Befehl über Node-Red

    Moved
    13
    0 Votes
    13 Posts
    5k Views
    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

    Moved
    5
    0 Votes
    5 Posts
    3k Views
    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

    Moved
    41
    0 Votes
    41 Posts
    6k Views
    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

    Moved
    3
    0 Votes
    3 Posts
    830 Views
    M
    RPI funktioniert mit Orange Pi nicht richtig. Ich habe es ausprobiert.
  • SetState() nach createState() schreibt nichts?

    Moved
    31
    0 Votes
    31 Posts
    7k Views
    ruhr70R
    Puh… Danke!!! na, da habe ich ja was zu tun ;-)
  • Problem mit Bewegungsmelder

    Moved
    8
    0 Votes
    8 Posts
    2k Views
    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

    Moved
    15
    0 Votes
    15 Posts
    8k Views
    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

    Moved
    4
    0 Votes
    4 Posts
    750 Views
    A
    Leider ist das Problem damit nicht gelöst. Der RAM ist heute Nacht wieder vollgelaufen.
  • [Gelöst] Schleife langsamer ausführen

    Moved
    5
    0 Votes
    5 Posts
    2k Views
    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

    Moved
    42
    0 Votes
    42 Posts
    9k Views
    D
    Jemand eine Idee wie er die einzelnen Klingelvorgänge addiert??
  • HTML parsen

    Moved
    4
    1
    0 Votes
    4 Posts
    2k Views
    WalW
    Danke, funzt. :lol:
  • Fade LED?

    Moved
    2
    0 Votes
    2 Posts
    1k Views
    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?

    Moved
    3
    0 Votes
    3 Posts
    1k Views
    P
    Hallo, man kann gleich das Objekt Skriptname_scriptEnabled nutzen und per Vis schalten. Ist auch boolean. Pix
  • [Frage] Googlekalendereintrag erzeugen mit Script

    Moved
    9
    0 Votes
    9 Posts
    1k Views
    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

    Moved
    2
    0 Votes
    2 Posts
    933 Views
    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

    Moved
    4
    0 Votes
    4 Posts
    686 Views
    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

    Moved
    18
    2
    0 Votes
    18 Posts
    7k Views
    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

    Moved
    14
    0 Votes
    14 Posts
    2k Views
    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

    Moved
    5
    0 Votes
    5 Posts
    915 Views
    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

    Moved
    22
    3
    0 Votes
    22 Posts
    5k Views
    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.

484

Online

32.6k

Users

82.2k

Topics

1.3m

Posts