Skip to content

Skripten / Logik

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

16.5k Themen 213.2k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    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 Themen
    79k Beiträge
    M
    Ich habe einen zweiten Statuspunkt (Briefkasten_State) dazu genommen, den ich über einen Button immer wieder zurücksetze. [image: 1769854217178-screenshot-2026-01-31-110831.png]
  • 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?
  • Aktuelle Leistung aus Stromzählerstand berechnen

    3
    0 Stimmen
    3 Beiträge
    458 Aufrufe
    W
    @paul53 Vielen dank :-) [image: 1689769267928-e3ae1801-a7c3-4093-b0b6-8d3a30868adf-image.png] Hat geklappt. Gruß Wurmi \m/
  • Gelöst: Obejtktdaten ändern

    javascript
    18
    0 Stimmen
    18 Beiträge
    313 Aufrufe
    M
    @tt-tom sagte in Gelöst: Obejtktdaten ändern: @michihorn viel Erfolg :+1: So klappt es: CamNr wird von Motioneye beschrieben CamView ist zur Stuerung des basis-Iframe8 sperre ist meine Krücke zum zeitlichen Verriegeln const idCamView = "0_userdata.0.System.CamView"; const idCamNr = "0_userdata.0.System.CamNr"; const idsperre = "0_userdata.0.System.Sperre" on({ id: idCamNr, change: "any" }, function (dp) { if ((dp.state.val) == 3) { setState(idsperre, true) setState(idCamView, 3) setTimeout(function () { setState(idsperre, false) }, 20000); } else if ((getState(idsperre).val == false) && (dp.state.val != 3)) { setState(idCamView, dp.state.val) } }); on({ id: idsperre, val: false }, function (dp) { setState(idCamView, getState(idCamNr).val) }); Geht sicher auch eleganter. ;-)
  • [gelöst] Datenpunkt mit Blockly aus SQL-History auslesen

    9
    0 Stimmen
    9 Beiträge
    928 Aufrufe
    R
    @haus-automatisierung Danke! Du hattest recht, ich habe mir einen SQL-Client (MYSQL-Workbench) installiert und mich ein wenig in SQL eingearbeitet (ja, hat etwas gedauert ;-) hat mich dann aber ein großes Stück weitergebracht. Meine Anfrage wäre hiermit gelöst! :-)
  • täglich neu erstelltes Array mit Tagesinfos einer PV Anlage

    blockly
    11
    0 Stimmen
    11 Beiträge
    806 Aufrufe
    paul53P
    @maddm sagte: ich muss auch die Werte in Hochkommas setzten Wenn es Zahlen sind, ist es nicht nötig.
  • Kann man Wert von "letztes" irgendwo auslesen?

    Verschoben
    24
    0 Stimmen
    24 Beiträge
    4k Aufrufe
    Ben1983B
    SORRY FALSCHEINTRAG
  • Wird Blockly-Plus noch weiter entwickelt?

    blockly
    6
    0 Stimmen
    6 Beiträge
    564 Aufrufe
    mcm1957M
    @guergen Da dieser Adapter nie als in die offiziellen Repositories übernommen wurde, ist auch eine Migration in den community Bereich eher ausgeschlossen. Am sinnvollsten wäre es - wenn jemand hier Arbeit hineinstecken will/kann - die gewünschte Funktionalität DIREKT im java script / blockly Adapter einzubauen und dies via PR einzureichen, Dann würde die Funktionalität auch langfristig erhalten bleiben. Siehe auch https://github.com/ioBroker/ioBroker.javascript/issues/1031 PR welcome : https://github.com/ioBroker/ioBroker.javascript/issues/1031#issuecomment-1135768654
  • Fehlermeldung verstehen

    31
    4
    0 Stimmen
    31 Beiträge
    3k Aufrufe
    HomoranH
    @ticaki sagte in Fehlermeldung verstehen: Dann liegt der Fehler in Proxmox 8.0, da bin ich noch nicht sicher. https://forum.iobroker.net/topic/66930/probleme-mit-homematic-rpc/1
  • Einfache Rasenbewässerung funktioniert nicht.

    20
    1
    0 Stimmen
    20 Beiträge
    1k Aufrufe
    T
    @olek_michdoch sagte in Einfache Rasenbewässerung funktioniert nicht.: Sorry, wollte dich nicht verärgern. Ich probier halt immer viel rum und will auch selber verstehen was ich da mache. Ich probier gerade deinen ansatz. Denke nicht dass es ein Problem ist, eher das es in 9 von 10 Fällen so läuft :)
  • über Alexa Geräte steuern - Hilfe

    30
    0 Stimmen
    30 Beiträge
    3k Aufrufe
    S
    @djmarc75 Gude, ja danke für deine Zeit und Mühe 👌👍 Da ich auch nicht nur Copy & Paste`n will möchte ich kurz das Script durchbügeln und was mitnehmen. Falls Alexa die "passende" Routine erkennt wird im Script nicht erst damit rumgespielt um mein gesprochenes zu vergleichen sondern gleich mit der Routine gestartet. Soweit ist es auch klar das der "erstelle Text" die Alexa wieder angesprochen wird mit der ID und eine Sprachausgabe startet die weiter unten im Wert steht. Also sehr einfach zu verstehen. Jetzt kann ich z.B. ganz einfach eine Hue Lampe dabei angehen lassen die grün angeht wenn Elfriede am arbeiten ist. Danke vorab, jetzt wird mir die ein oder andere Idee kommen die ich erstmal selber bauen kann bis ich Dich wieder bräuchte ;) Ich wünsch schonmal ein schönes Wochenende ;)
  • Heishamon SET Heating_Off_Outdoor_Temp

    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    B
    Hallo Zusammen, falls die Lösung noch jemanden interessiert. Das Thema wurde auf GitHub unter den issues diskutiert und es wurde eine Alpha Version zum Testen angeboten. Mit dieser Version kann man den Schwellwert für die Sommerumschaltung mit command "SetHeatingOffOutdoorTemp" verändern. Das wird wahrscheinlich in einer stable Version mit integriert sein. Wer nicht abwarten kann, der kann die Alpha Version jetzt schon testen. Bei mir funktioniert das tadellos. Hier der Link: https://github.com/Egyras/HeishaMon/issues/351 Gruß
  • [gelöst] Variable wird als nicht gelesen gekennzeichet

    13
    1
    0 Stimmen
    13 Beiträge
    303 Aufrufe
    Ben1983B
    @ticaki Danke, das war das Problem, war falsch herum, aber mir ist es nicht aufgefallen, weil das ja nicht als Fehler angezeigt wurde.
  • Countdown ersetzen anstatt neuen zu erzeugen

    4
    0 Stimmen
    4 Beiträge
    418 Aufrufe
    geschildG
    @ehome Dann würde ich erst löschen und dann den geänderten sofort hinterherschicken.
  • Steckdose abfragen ob manuell eingeschaltet wurde?

    6
    0 Stimmen
    6 Beiträge
    509 Aufrufe
    E
    Für meine E-Auto-Steckdose (Shelly plus 1pm) habe ich im Script einen Switch 'manu'/'auto' eingebaut. Dieser Switch wird in der VIS gesetzt. Im Status 'manu' wird wird keine Steuerung über den 'Einspeisungswert' vorgenommen.
  • Wert aus einer Webseite auslesen?

    javascript
    52
    0 Stimmen
    52 Beiträge
    12k Aufrufe
    U
    OK, vielen Dank. Ich werde das nach meinem Urlaub mal testen.
  • Datenpunkte system.host.HOSTNAME.versions.nodeNewest usw

    5
    0 Stimmen
    5 Beiträge
    173 Aufrufe
    Thomas BraunT
    @ticaki Ja, wie gesagt, auf meinem System passte das. Bei Beta-Tests auf anderen Systemen kamen aber auch falsche Ergebnisse heraus. Also nodejs18 installiert, aber im Datenpunkt stand was von v16 drin. Z. B. so: Nodejs-Installation: /usr/bin/nodejs v18.16.1 /usr/bin/node v18.16.1 /usr/bin/npm 9.5.1 /usr/bin/npx 9.5.1 Recommended versions are nodejs 16.20.1 and npm 8.19.4 Your nodejs installation is correct
  • [gelöst] Changelog Script Engine 6.1.4 -> 7.0.3

    6
    0 Stimmen
    6 Beiträge
    372 Aufrufe
    T
    @crunchip sagte in [gelöst] Changelog Script Engine 6.1.4 -> 7.0.3: ja das ist mittlerweile integriert, damit man nicht behaupten kann...."hab ich nicht gesehen":stuck_out_tongue_winking_eye: Hab ich nicht verstanden geht aber immer noch :)
  • HM-Adapter ./. Web-Request für HTTP-Aufrufe

    2
    0 Stimmen
    2 Beiträge
    157 Aufrufe
    paul53P
    @penumbra sagte: welcher Weg ist der optimalere bzw. sicherere? Der normale Weg ist das Schreiben (setState) auf den Datenpunkt unter "hm-rega.0".
  • Trigger mit Bedingung in Blockly

    Verschoben
    6
    3
    -1 Stimmen
    6 Beiträge
    4k Aufrufe
    C BC
    @buggybeast71 Hey. Vielen Dank. Genau das hat mir auch geholfen. Ich hab ewig rumprobiert und wollte halt auch nicht, das die Meldungen permanent kommen, sondern nur wenn der Wert einmal unterschritten wurde.
  • [gelöst] Ista - Ablesung Heizung und Warmwasser

    7
    1
    0 Stimmen
    7 Beiträge
    911 Aufrufe
    Ro75R
    Habe das Problem nun doch selber lösen können. War letztlich weniger kompliziert als zuvor angenommen: var i, result, j, json, s; sendTo("imap.0", "getIMAPRequest", { name: "xxxxxxx_gmx.de", max: 20, search: '["ALL", ["HEADER", "FROM", "no-reply@ecotrend.ista.com"]]', fetch: JSON.parse('{"fetch": false, "seqno": [21954]}'), bodie: '{bodies: "", markSeen: false}', parse: true, }, async function (result) { if (!result) { console.log("No result found!"); return; } for (var i_index in result) { i = result[i_index]; s = getAttr(i, 'body.html'); //Auswertung starten Heizung(s); Warmwasser(s); } }); function Warmwasser(sValue) { //hier nun die einzlnen Werte auslesen und dann in DP schreiben für VIS const w = 'Warmwasser'; console.log(w); console.log(Zeitraum(sValue,w)); console.log(Einheiten(sValue,w)); } function Heizung(sValue) { //hier nun die einzlnen Werte auslesen und dann in DP schreiben für VIS const h = 'Heizung'; console.log(h); console.log(Zeitraum(sValue,h)); console.log(Einheiten(sValue,h)); } function Zeitraum(sValue,sType) { var Wert1 = sValue.substr(sValue.indexOf(sType)); var Position = Wert1.indexOf("<strong>"); var Wert2 = Wert1.substr(Position+8,25); return Wert1.substr(Position+8,Wert2.indexOf("<")); } function Einheiten(sValue,sType) { var Wert1 = sValue.substr(sValue.indexOf(sType)); Wert1 = Wert1.substr(Wert1.indexOf("<strong>")+50,600); var Wert2 = Wert1.substr(Wert1.indexOf("<strong>")+8); Wert1 = Wert1.substr(Wert1.indexOf("<strong>")+8,Wert2.indexOf("&")); return String(Wert1).replace('Einheiten','').replace(' m³',''); } Ro75.
  • Datenpunkt aus mehreren Tagen Erzeugen

    19
    0 Stimmen
    19 Beiträge
    486 Aufrufe
    T
    @david-g sagte in Datenpunkt aus mehreren Tagen Erzeugen: @paul53 Ah, okay. Das verstehe ich. Dann macht RegeEx ja eigentlich fast immer mehr Sinn als der Selektor oder (da er mehr Eventualitäten abdeckt)? Langsam was offtopic.. Nein, der selector findet nur Änderungen und wenn dich nur Änderungen interessieren, was häufig der Fall ist, ist es RegEx vorzuziehen. Benutze aber selbst für gleiche DP ebenfalls regex mit change: 'was auch immer'. In deinem Fall ist es möglich, wenn auch nicht wahrscheinlich, das am z.B. 14. April die gleiche Leistung wie am 14 Mai gemessen wird, dann verändert sich der Wert des State nicht und dir fehlen Werte. Das könnte man dann wieder auffangen in dem man die Protokollierung der Werte auf Nur Änderungen und gleicher Wert nach 86.400 + x Sekunden protokoliert. Das würde dann nur nach 86400/x Fällen in Folge zu einem Fehler führen. em ok ;) kurz: nimm das von paul53

716

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge