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?
  • Aktuelle Leistung aus Stromzählerstand berechnen

    3
    0 Votes
    3 Posts
    458 Views
    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 Votes
    18 Posts
    313 Views
    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 Votes
    9 Posts
    928 Views
    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 Votes
    11 Posts
    806 Views
    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?

    Moved
    24
    0 Votes
    24 Posts
    4k Views
    Ben1983B
    SORRY FALSCHEINTRAG
  • Wird Blockly-Plus noch weiter entwickelt?

    blockly
    6
    0 Votes
    6 Posts
    564 Views
    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 Votes
    31 Posts
    3k Views
    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 Votes
    20 Posts
    1k Views
    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 Votes
    30 Posts
    3k Views
    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 Votes
    5 Posts
    1k Views
    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 Votes
    13 Posts
    303 Views
    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 Votes
    4 Posts
    415 Views
    geschildG
    @ehome Dann würde ich erst löschen und dann den geänderten sofort hinterherschicken.
  • Steckdose abfragen ob manuell eingeschaltet wurde?

    6
    0 Votes
    6 Posts
    509 Views
    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 Votes
    52 Posts
    12k Views
    U
    OK, vielen Dank. Ich werde das nach meinem Urlaub mal testen.
  • Datenpunkte system.host.HOSTNAME.versions.nodeNewest usw

    5
    0 Votes
    5 Posts
    173 Views
    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 Votes
    6 Posts
    372 Views
    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 Votes
    2 Posts
    157 Views
    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

    Moved
    6
    3
    -1 Votes
    6 Posts
    4k Views
    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 Votes
    7 Posts
    910 Views
    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 Votes
    19 Posts
    486 Views
    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

361

Online

32.6k

Users

82.2k

Topics

1.3m

Posts