Skip to content

Skripten / Logik

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

16.6k Topics 214.2k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    T
    KI Antwort: Das Problem in deinem Skript ist klar: Du versuchst remote.start abzufangen und mit setState(MOWER_START, false) zurückzusetzen. Das funktioniert nicht, weil der Navimow-Adapter den Startbefehl sofort an die API sendet, bevor dein Skript ihn zurücksetzen kann. Deshalb fahren Tor und Mäher gleichzeitig los. Die Lösung: Einen eigenen Trigger-Button verwenden statt remote.start abzufangen. Hier das korrigierte Skript: // Garage + Mäher Steuerung const ROLLO = 'hm-rpc.0.OEQ0550361.1.LEVEL'; const MOWER_START = 'navimow.0.21EAB2545Y4281.remote.start'; const MOWER_STATUS = 'navimow.0.21EAB2545Y4281.status.state'; const TRIGGER = '0_userdata.0.Garage_Maeher_Start'; // Trigger-Datenpunkt erstellen (diesen Button auf dein Tablet legen) createState(TRIGGER, false, { name: 'Mäher mit Garagentor starten', type: 'boolean', role: 'button', read: true, write: true }); let running = false; let watcher = null; on({id: TRIGGER, change: "any", ack: false}, async function (obj) { if (obj.state.val !== true || running) return; running = true; // 1. Tor öffnen setState(ROLLO, 100); log("Tor öffnet"); // 2. Warten bis Tor komplett offen (2 Minuten) await wait(120000); // 3. Mäher starten log("Starte Mäher"); setState(MOWER_START, true); // 4. Rückkehr überwachen if (watcher) unsubscribe(watcher); watcher = on({id: MOWER_STATUS, change: "ne"}, async function (state) { if (state.state.val === "isDocked" && state.state.ack) { log("Mäher ist zurück"); unsubscribe(watcher); watcher = null; // 5. Warten bis Mäher in Garage (2 Minuten) await wait(120000); // 6. Tor schließen setState(ROLLO, 0); log("Tor schließt"); running = false; } }); }); Was ist anders: Eigener Trigger-Button (0_userdata.0.Garage_Maeher_Start) -- diesen Datenpunkt legst du auf dein Tablet statt remote.start. Der Mäher wird erst nach 2 Minuten Wartezeit gestartet, nicht sofort. change: "ne" beim Status-Watcher -- reagiert nur auf tatsächliche Statusänderungen, nicht auf wiederholte Werte. ack-Prüfung -- state.state.ack === true stellt sicher, dass nur bestätigte Statusänderungen vom Gerät verarbeitet werden. running-Flag -- verhindert, dass der Ablauf doppelt gestartet wird. So richtest du es ein: Skript in ioBroker JavaScript-Adapter einfügen und starten Der Datenpunkt 0_userdata.0.Garage_Maeher_Start wird automatisch erstellt Diesen Button auf dein Tablet (z.B. in VIS oder Lovelace) legen remote.start direkt nicht mehr als Auslöser verwenden -- wenn du den Mäher ohne Garage starten willst, kannst du remote.start weiterhin normal nutzen
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    paul53P
    @Ritter sagte: Kann man den aktuellen Wert von dem Counter den er von 10 Minuten nach 0 herunterzählt abfragen und in einen Datenpunkt schreiben? Nein. Dafür kann man ein Intervall zusammen mit einer Countdown-Variablen verwenden.
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • Spotify shuffle

    multimedia
    1
    0 Votes
    1 Posts
    104 Views
    No one has replied
  • JSON Werte in Datenpunkte

    Moved
    18
    0 Votes
    18 Posts
    5k Views
    paul53P
    @Kevin sagte: über einen Datenpunkt an der Fritzbox abfragen Dann mache die Abfrage als erstes in der Funktion SendRequest(). function SendRequest(){ if(getState('abc.0.xyz.3Drucker.active').val) { var options = { url: 'http://URLVON3DRUCKER' }; request(options, function (error, response, body){ if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body)); else console.error(error); }); } }
  • [gelöst]-Alle Objekte eines Ordners...

    javascript blockly
    27
    0 Votes
    27 Posts
    3k Views
    P
    Habe die Ursache gefunden - wenn auch ich nicht ganz nachvollziehen können: initialize the object holding variable inside the for loop beginning
  • Scriptausführung nach Neustart verhindern

    javascript blockly
    23
    0 Votes
    23 Posts
    2k Views
    paul53P
    @eagleeye sagte: hier die Zeile aus text2command: Dein Fehler ist, dass Du die Skripte über "javascript.0.scriptEnabled.Skriptname" neu startest. Dann passiert @eagleeye sagte: das nach reboot (restart) Scripte ausgeführt werden? Verwende eigene Datenpunkte als Trigger, dann passiert dies nicht. [image: 1596117977492-blockly_temp.jpg]
  • "open"-State von Fensterkontakt in Blockly nutzbar?

    Moved
    11
    0 Votes
    11 Posts
    2k Views
    BlackRabbitB
    Vielen Dank für die schnellen Antworten! @paul53 das hat funktioniert! Super! @Homoran Dir vielen Dank für die Erklärung der genaueren Fehlersuche, und die Funktion mit dem Debugging!
  • Befehl, erst wenn vorheriger bestätigt wurde (Ack-State)

    javascript blockly
    3
    0 Votes
    3 Posts
    359 Views
    S
    @paul53 Danke für die schnelle Antwort. Das schaut auf den ersten Blick (für meine Verhätlnisse) dann doch ziemlich komplexer. Muss ich mir genauer anschauen. Lässt sich das Verfahren auch in Blockly realisieren?
  • FullyBrowser startApplication funktioniert nicht

    blockly javascript
    1
    0 Votes
    1 Posts
    435 Views
    No one has replied
  • [gelöst] Text mit Leerzeichen mit Blockly an LCD Display

    blockly
    4
    0 Votes
    4 Posts
    629 Views
    GlasfaserG
    @Beowolf Hat funktioniert. Dann setze das Thema auf gelöst ...
  • Rolladensteuerung errechnen des Standes

    Moved
    38
    0 Votes
    38 Posts
    8k Views
    A
    @fastfoot super genial - vielen Dank. Es lässt sich importieren. Ich schau es mir genau an und teste es.
  • Fertige Scripts

    blockly climate
    1
    1 Votes
    1 Posts
    448 Views
    No one has replied
  • Anfängerfrage Dashbutton Javascript

    Moved
    6
    0 Votes
    6 Posts
    683 Views
    Albert KA
    @Uhula genau das hab ich gesucht. Habe 6 Dash Buttons und jetzt funktionieren sie wie sie sollen. Danke im nachhinein :+1:
  • Geräteliste des Adapters

    Moved
    20
    1
    0 Votes
    20 Posts
    1k Views
    paul53P
    @paul53 sagte: Ohne Kanäle funktionieren dp.deviceId dp.deviceName offenbar nicht. Werde Issue auf github erstellen. Habe festgestellt, dass man bei Zigbee anstelle von dp.deviceId und dp.deviceName den Kanal abfragen muss, um das Gerät zu erhalten. [image: 1595844269311-blockly_temp.jpg] Der Objekt-Typ wird offenbar nicht geprüft, sondern es wird das Eltern- bzw. Großeltern-Objekt verwendet.
  • Pi Neustart wenn ioBroker nicht mehr erreichbar

    blockly
    7
    0 Votes
    7 Posts
    2k Views
    paul53P
    @n3ucr0n sagte: Dann Putty gestartet -> W-Lan ID eingegeben -> Benutzername und Passwort eingegeben. Putty verbindet sich mit dem dem Raspberry und alle anderen Verbindungen stehen auch wieder: Greifst Du per W-LAN auf den Pi zu ? Dann hat er wohl die W-LAN-Verbindung verloren.
  • Variable Telegram-Empfänger

    blockly communication
    5
    1
    0 Votes
    5 Posts
    752 Views
    J
    @dslraser Danke! Das ist ja sogar recht aktuell, hatte ich bisher nicht gefunden. Auf die Idee, einen normalen SendTo-Block zu nutzen bin ich bisher tatsächlich nicht gekommen. Da mein Script aber soweit ohnehin schon komplett ist oder ich Kleinigkeiten auch mit JS hinzufügen kann werde ich es erstmal so benutzen, weiß aber jetzt wo ich Abhilfe finde. Vielen Dank dafür! :)
  • Blockly Script wirft Schleife (Bewegungsmelder SONOSS PIR2)

    blockly
    4
    0 Votes
    4 Posts
    479 Views
    T
    Habe es jetzt testen können - das funktioniert :) Super klasse - ganz großes Dankeschön. Und jetzt eine gute Nacht. ;)
  • Blockly für Stromberechnung

    blockly
    7
    0 Votes
    7 Posts
    910 Views
    Michael DreherM
    Ok Danke werde es testen und rückmeldung geben
  • Intervall Script Schaltung - Pool Schaltung

    blockly
    26
    1
    0 Votes
    26 Posts
    4k Views
    A
    Hm.. ok. ich werde meine werte mal anpassen und es dann beobachten.
  • Anrufer Ansage FritzBox / SayIt

    Moved
    36
    1
    0 Votes
    36 Posts
    10k Views
    paul53P
    @loi83 sagte: allerdings wird die Lautstärke auch nicht verändert Mit "sayit" kenne ich mich nicht aus.
  • get Subfolder of Object

    javascript
    1
    0 Votes
    1 Posts
    216 Views
    No one has replied
  • Licht automatisch und manuell über Alexa steuern

    blockly
    1
    2
    0 Votes
    1 Posts
    241 Views
    No one has replied

528

Online

32.7k

Users

82.6k

Topics

1.3m

Posts