Skip to content

Skripten / Logik

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

16.6k Topics 214.1k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    crunchipC
    @Thisoft ne, das Script legt die entsprechenden Datenpunkte an, was man damit macht, ist jeden selbst überlassen. Influx/Grafana hab ich für mich persönlich laufen und daher bereitgestellt.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    paul53P
    @Qlink sagte: Das sonst falls beinhaltet bereits "somebody@home = falsch" richtig ? Richtig, sonst = nicht Wert = abwesend.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • Zigbee Überwachung letzer empfangener Wert

    javascript blockly
    9
    0 Votes
    9 Posts
    2k Views
    C
    Hi, hatte so ein Skript vor einiger Zeit schon gepostet. Telegram meldung müsste ja einfach sein: // setState("telegram.0.communicate.response", "Info: Gerät nicht erreicht"); mal auskomentieren. Vielleicht Hilfts - Gruß Martin @charakterkopf said in [Aufruf] Welche guten JavaScripts setzt ihr ein?: Die Idee ist super. Es fehlt wirklich eine Script Bibliothek. Hier ein Script um Datenpunkte von z.B. Funksensoren auf Lebendigkeit zu testen. Meine Zigbee Sensoren schmierten früher immer gerne ab und ich habe es nie erkannt. //Das Script überprüft regelmässig die Datenpunkte auf Aktualisierung //Angabe des Datenpunkts= Datenpunkt der Überwacht werden soll //StateBezeichnung= Unter pfad_javascript.StateBezeichung wird ein State angelegt; True = Daten sind aktuell / False = Daten veraltet //Zeit in Sekunden = Zeit die vergangen sein darf seit der letzen Aktualisierung des Datenpunkts (0 = default Zeit wird genommen). schedule("*/3 * * * *" , function () { // Angabe des Datenpunkts;StateBezeichnung;Zeit in Sekunden var ueberwachung = ['fritzdect.0.Comet_119610277592.temp;Heizung;400', 'mqtt.0.zigbee2mqtt.Kuehlschrank;Temp_Kuehlschrank;7000', 'mqtt.0.zigbee2mqtt.gefrierfach;Temp_Gefrierschrank;7000', 'mqtt.0.zigbee2mqtt.TemperaturBad;Bad_Feuchtigkeit;7000', 'mqtt.0.zigbee2mqtt.Fenster_1;Fenster_1;7000', 'mqtt.0.zigbee2mqtt.Fenster_2;Fenster_2;7000', 'mqtt.0.zigbee2mqtt.Fenster_3;Fenster_3;7000', 'mqtt.0.zigbee2mqtt.Fenster_4;Fenster_4;7000', 'mqtt.0.zigbee2mqtt.Fenster_5;Fenster_5;7000', 'mqtt.0.zigbee2mqtt.Fenster_6;Fenster_6;7000', 'mqtt.0.zigbee2mqtt.Fenster_7;Fenster_7;7000', 'mqtt.0.zigbee2mqtt.Fenster_8;Fenster_8;7000']; var default_zeit = 240; var pfad_javascript ='javascript.0.watchdog.'; // Beispiel: 'javascript.0.watchdog.' !Punkt nicht vergessen am Ende! //------------------------------------------------------------------ //Ab hier nichts mehr Ändern //------------------------------------------------------------------ var zeit= Math.floor(Date.now() / 1000); var differenz, lchange; var daten, tchange; ueberwachung.forEach(function(item, index, array) { // Array Splitten daten = item.split(";"); //Datenpunkt erstellen wenn nicht vorhanden createState(pfad_javascript + daten[1], { read: true, write: false, name: "Watchdog " + daten[1], type: "boolean", role: " ", def: "false"}); //Differenz Zeit default oder manuell? differenz = parseInt(daten[2]); if (differenz == 0) differenz=default_zeit; //Zeitstempel abfragen in Sekunden tchange=parseInt(getState(daten[0]).ts / 1000); //Vergleichen der Zeitstempel if ((zeit-tchange)>differenz) { setState(pfad_javascript + daten[1], false); //console.log(daten[1] + " ist älter als " + differenz + " Sekunden"); //Telegramm // setState("telegram.0.communicate.response", "Info: Gerät nicht erreicht"); // setState("telegram.0.communicate.response", daten[1]); } else { setState(pfad_javascript + daten[1], true); //console.log(daten[1] + " ist jünger als " + differenz + " Sekunden"); } }); });
  • Konfiguration mysql / Datenbank auf Pi

    communication
    3
    4
    0 Votes
    3 Posts
    303 Views
    M
    @Jey-Cee Danke dir. Hm k dann werd ich mein Glück wohl doch vielleicht mal mit Grafana probieren.
  • Nuki Smart Lock 2.0 & Bridge: Überwachung per Telegram

    blockly
    3
    0 Votes
    3 Posts
    422 Views
    I
    Jepp, mittlerweile rausbekommen, warum der DoorState bei mir nicht sichtbar war: Man MUSS die NUKI Web API aktivieren, um den DoorState abfragen zu können! Ansonsten erscheint er im ioBroker nicht.
  • Blockly Telegram Luftfeuchtigkeit

    Moved
    14
    1
    0 Votes
    14 Posts
    2k Views
    J
    @paul53 Danke, das hat funktioniert!
  • Schedule wird nachgeholt, wenn Raspi aus?

    javascript
    6
    0 Votes
    6 Posts
    531 Views
    P
    Ich habe die Sache heute nochmal wiederholt und diesmal trat der Effekt nicht auf. Sorry für den Fehlalarm. Der Raspi war vorgestern definitiv aus. Ich hatte früh die SSD abgezogen, weil ich am Win-PC mal die SMART-Daten auslesen wollte.
  • [gelöst] Newsfeed in iobroker.vis darstellen

    Moved
    51
    0 Votes
    51 Posts
    17k Views
    D
    @thiel_marvin Wo willst du dieses einzelne Objekt dann nutzen? In VIS?
  • Bug in deleteState ? [gelöst]

    javascript
    3
    0 Votes
    3 Posts
    321 Views
    GoerschG
    danke - da wär ich nie drauf gekommen.
  • permissionError

    blockly
    7
    1
    0 Votes
    7 Posts
    272 Views
    Christoph1337C
    Da bin ich gerade am suchen :) Im zweifel gibts gleich nen rollback auf die version von gestern.
  • Synchronisieren von States/Statusänderungen

    javascript
    5
    0 Votes
    5 Posts
    441 Views
    D
    Es geht ja um die aktuelle Leistung (in Watt) für die Erzeugung. Die Zählerstände in kWh bringen mich da nicht weiter. Wie es scheint, kann ich nur die Diagramme entsprechend glätten um die falschen Werte möglichst raus zu bekommen. Ich überlege schon, ob ein Einspeisezähler direkt hinter den Wechselrichtern sinn macht. Dann hätte ich einen Wert für beide Wechselrichter und müsste nicht mehr rechnen.
  • Script schreibt Variablen in Rega aber nicht in die Raspi

    blockly
    4
    4
    0 Votes
    4 Posts
    199 Views
    ?
    So ... Problem gelöst ... wenn ich die Abfrage über den Zeitplan "Wizard" zu einer bestimmten Uhrzeit starte, reagiert er nicht. Arbeite ich mit "CRON" ("alle x min / Stunden"), dann macht er was er soll ... komisch, aber nun gut...
  • [Frage] Sprachsteuerung intelligenter machen

    blockly
    14
    0 Votes
    14 Posts
    567 Views
    F
    Ok dann werde ich wohl bei meiner aktuellen variante bleiben müssen. Hat wer noch eine Idee wie man eine eindeutige zurordnung des Alexa Gerätes realisieren kann. Wenn in jedem Raum eine Alexa ist, dann ist die zuordnung nur durch die Alexa geräte nicht eindeutig genug. Da in der History dann alle Geräte auftauchen die das Codewort verstanden haben.
  • Erzeugen von Datenpunkten mit Voreinstellungen

    Moved javascript
    12
    0 Votes
    12 Posts
    6k Views
    GarfonsoG
    @paul53 said in Erzeugen von Datenpunkten mit Voreinstellungen: Leider scheint dieses alte Topic immer noch als Referenz zu dienen für manche. Daher hier mein Hinweis: common.states sollte heute ein Object sein, kein string, wie in dem Skript. Hier das aktualisierte Skript: // Datenpunkte mit Voreinstellungen erzeugen (createState) function createCheckbox(name) { createState(name, false, {read: true, write: true, desc: "Beschreibung", type: "boolean", def: false }); } function createSwitch(name) { createState(name, false, {read: true, write: true, desc: "Beschreibung", type: "boolean", def: false, states: {false:"Aus", true:"Ein"} }); } function createMultistate(name) { createState(name, 0, {read: true, write: true, desc: "Beschreibung", type: "number", min: 0, max: 2, def: 0, states: { 0:"Wert0", 1:"Wert1", 2:"Wert2"} }); } function createLevel(name) { createState(name, 0, {read: true, write: true, desc: "Beschreibung", type: "number", min: -30, max: 70, def: 0, unit: "°C" }); } function createString(name) { createState(name, "", {read: true, write: true, desc: "Beschreibung", type: "string", def: "" }); }
  • Performance schedule - 1 oder 7 Zeigleich

    javascript
    2
    0 Votes
    2 Posts
    166 Views
    paul53P
    @Malz1902 sagte: ist jetzt ist ein schedule mit allen 6 Steckdosen und dem Smartmeter besser Ja, jedes zusätzliches Schedule verbraucht Ressourcen.
  • Timeout / Cleartimeout

    javascript
    6
    0 Votes
    6 Posts
    1k Views
    P
    Ok nochmal eine ergänzung. Wenn der Eingang pulsiert innerhalb der eingestelltenzeit wird der Code trotzdem ausgeführt. mit einer nicht timeout abfrage im if hat dies verhindert. createState('Test.Button1', { type: 'boolean', def: false}); var taster1 = 'javascript.0.Test.Button1'; var timeout on({id: taster1, change: "ne"}, function (obj) { if (getState(taster1).val && !timeout) { timeout = setTimeout(function() { console.log('Hallo'); }, 3000); } else { clearTimeout(timeout); timeout = null; } }); Falls ich ein fehler gemacht habe (z.B formatierung) bitte schreiben da ich noch Java / Javascript neuling bin.
  • Benachrichtigung bei ausgefallenen Sensoren

    javascript
    3
    0 Votes
    3 Posts
    374 Views
    D
    @Glasfaser Sieht sehr gut aus. Das sollte die Lösung sein. Danke.
  • nod-red serial kommunikation

    node-red
    7
    1
    0 Votes
    7 Posts
    961 Views
    P
    Hallo, ja, das geht genau so. Einfach messen, welchen Pegel RX und TX zu GND haben.
  • Alte DPs entfernen

    blockly javascript
    4
    0 Votes
    4 Posts
    235 Views
    paul53P
    @Christoph1337 sagte: listet dieses Script lediglich auf, oder? Die Entscheidung, welche Datenpunkte nicht mehr gebraucht werden, kann Dir kein Automatismus abnehmen.
  • Storensteuerung

    javascript blockly
    1
    1
    0 Votes
    1 Posts
    204 Views
    No one has replied
  • Instanz überwachen - Fhem

    blockly
    6
    0 Votes
    6 Posts
    297 Views
    LausiDL
    @BobDerBaumeister Versuche es mal hiermit......fhem.0.info.Info.alive true nach erfolgreicher Synchronisationvon FHEM und im Betrieb Knallt der FHEM Server ab wechsel auf false Gruß LausiD
  • [Gelöst] Logo8 Daten auslesen funktioniert nicht !

    communication
    7
    3
    0 Votes
    7 Posts
    762 Views
    Basti97B
    @raspido Wenn du immer noch das Problem hast. Füge einfach Netzwerk Ein/Ausgänge zu deinem Programm hinzu und vergebe im Anschluss die VM Adressen. Die musst du dann in io in den Adapter eintragen.

649

Online

32.7k

Users

82.5k

Topics

1.3m

Posts