Skip to content

Skripten / Logik

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

16.6k Themen 213.6k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    W
    Hallo zusammen! :-) Schön, dass das Projekt immer noch so aktiv genutzt wird. Bei mir sieht es zeitlich leider weiterhin sehr knapp aus. Allerdings habe ich im Zuge anderer Projekte den Versuch gestartet, das Skript in einen Adapter zu überführen und diesen auf GitHub zu veröffentlichen. Ich werde den Adapter selbst nicht mehr pflegen und testen können, aber vielleicht findet sich ja jemand, der Lust hat, daran mitzuarbeiten. Ich habe zudem versucht, die Regellogik von EcoFlow unabhängig zu machen, sodass theoretisch jeder Wechselrichter steuerbar ist. Das ist bisher jedoch komplett ungetestet. Hier findet ihr das Repository: https://github.com/Waly-de/ioBroker.ecoflow-powercontrol Damit könnte theoretisch auch – falls die bisherige Schnittstelle ausfällt – eine Anbindung über die offizielle API möglich werden. In der Admin-Oberfläche kann die letzte Version des Skriptes einfach per Copy-and-paste eingefügt werden; es sollte eigentlich alles an Einstellungen übernommen werden. Testet es gerne mal aus! Aber gleich vorab: In den nächsten acht Wochen werde ich leider nicht daran weiterarbeiten können. Sorry dafür! :-( Es wäre toll, wenn sich jemand aus der Community findet, der das Projekt weiter vorantreiben möchte. Viele Grüße Markus
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    OliverIOO
    @ltsalvatore Du könntest versuchen genau das beschriebene Muster versuchen zu erkennen. Also nach der Aktivität und unter 1W dann nochmal auf den Anstieg warten und erst den nächsten Abfall auf unter 1W als Ende erkennen. Am besten den einzelnen Phasen noch Namen geben und in einen datenpunkt schreiben. Dann kann das wieder weiters ausgewertet werden und Aktionen gestartet werden.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    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
  • [vgl. Folgefrage]Wie kann ich eine Variable an ein

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    680 Aufrufe
    mickymM
    @franzda Wie gesagt für eine Tabelle brauchst Du das nicht im script Teil der Template Node bearbeiten, das bring in meinen Augen nichts. Wenn Du unbedingt eine payload in einem script Teil einer Template Node machen willst, musst Du das im Script Teil einen besonderen Bereich definieren: https://flows.nodered.org/flow/2f1aaf0635f9bf23207152682323240a In diesem Thread habe ich das mal verwendet: [image: 1644708135694-0810894f-6215-4f18-8f4a-04933745c0df-image.png] Allerdings verstehe ich es nicht, warum man das für Tabellen braucht. Sprich im Prinzip kannst Du im script Teil der Template Node nur innerhalb der (function(scope) { ... } auf das Nachrichtenobjekt zugreifen.
  • timeout setzen, timeout verlängern..

    3
    0 Stimmen
    3 Beiträge
    282 Aufrufe
    M
    @paul53 Danke Paul - wie immer... let idTuerklingel = 'zigbee.0.00158d00070b39a2.opened'/*Is open*/; //open = keine Klingel, close = es klingelt let idTabletSeiteOG = 'fully-tablet-control.0.device.samsung_a7_og.device_info.currentPage'; let idTabletSeiteEG = 'fully-tablet-control.0.device.samsung_a7_eg.device_info.currentPage'; let idAnzeigeBild = '0_userdata.0.EG.Anzeige_Klingel_Tablet'/*EG Anzeige Klingel Tablet*/; let timer = null; let anzeigezeit=30 // 30 Sekunden setState(idAnzeigeBild, false); on(idTuerklingel, function(dp) { if (!dp.state.val) { console.log("Klingel"); setState(idAnzeigeBild, true, true); clearTimeout(timer); timer = setTimeout(function() { setState(idAnzeigeBild, false, true); }, 1000 * anzeigezeit); } });
  • Alexa Multi- Raumreinugung für Roborock/Xioami

    4
    0 Stimmen
    4 Beiträge
    471 Aufrufe
    D
    @meistertr es führen ja bekanntlich viele Wege nach Rom.. Bei uns fährtver halt immer per timer in wz und Küche und bad flur und Schlafzimmer sporadisch, aber das klappt dann mit den einzel ansagen ganz gut, aber das ist ja das schöne an iobroker, nen kleines script und das leben ist wieder leichter 😀
  • "Virtuelle Wechselschaltung" mit Tuya-schalter und Shelly 1?

    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    chucky666C
    @jan1 danke Jan für deinen Tipp
  • Energieerfassung / Startspannung Wechselrichter

    10
    0 Stimmen
    10 Beiträge
    801 Aufrufe
    wendy2702W
    @paul53 Sollte… aber ich kenne das Teil nicht und wenn es falsch rum eingebaut wurde zählt er auch vorwärts. Aber egal, wenn das Teil was Zählt ohne das Strom fließt ist es Müll.
  • Bei Start eines Skripts immer Meldung "Skript läuft nicht"

    19
    0 Stimmen
    19 Beiträge
    841 Aufrufe
    S
    @homoran Auf jeden Fall vielen herzlichen Dank für deine Hilfe.
  • CreateStateAsync erzeugt Fehlermeldung

    javascript
    5
    0 Stimmen
    5 Beiträge
    383 Aufrufe
    PeoplesP
    Issue erstellt: https://github.com/ioBroker/ioBroker.javascript/issues/955
  • Pioneer AVR Skript

    Verschoben
    45
    0 Stimmen
    45 Beiträge
    15k Aufrufe
    S
    @beboe @schroeder1 @Tom10web Ich habe mich jetzt auch mal mit dem Thema beschäft. Auch bei mir (VSX-S510) lässt sich die Lautstärke nur ändern, aber nicht auf einen bestimmten Wert setzen. Aber auch die Input-Belegung ist anders, als im auf github zum Adpater verlinkten Dokument. Das Internet-Radio (Anzeige NETWORK) erreicht ich z.B. über 38FN. Aber ich habe hier entdeckt, dass es wohl zahlreiche unterschiedliche Implementierungen der Befehle gibt. Dafür konnte ich auch gut sehen, dass, obwohl im Dispaly des VSX-S510 kaum etwas steht, alle Daten die auf einem Bildschirm angezeigt würden, abrufbar sind bzw. der Receiver diese automatisch sendet (Bitrate, Titel, Sendername, ...) Ich habe hier eine neue Implementierung eines Adapters gefunden, der auch darauf eingeht, dass Geräte offline gehen (weil sie im Standby die Netzwerkverbindung nicht aufrecht erhalten), Timeout-Fehler abfängt und sich automatisch neu verbindet. Außerdem werden die State mit Key/Value-Paaren belegt, so dass man keine kryptischen Werte eintragen muss sondern sprechende Namen (TV, NETWORK, ...) auswählen kann. Ich habe den Adapter mal unter https://github.com/Sneak-L8/ioBroker.pioneer_sc_vsx geforkt und versuche ihn nun zu erweitern. Z.B. Anzeige der Internet-Radiodaten oder Push-Buttons für Volumeup/down.
  • Ereignis steht bevor

    6
    0 Stimmen
    6 Beiträge
    196 Aufrufe
    G
    @zarello Hallo, habe es jetzt anders gelöst...der "Mülleimeradapter" gibt mir netterweise einen Wert aus wieviele Tage bis zur nächsten Leerung sind...und wenn der 1 ist, dann soll die Lampe angehen...Test laufen, sieht aber ganz gut aus...
  • Schalter soll nach Zeit X selbstständig ausschalten

    6
    0 Stimmen
    6 Beiträge
    407 Aufrufe
    OmnedonO
    @sebwirtz setStateDelayed(id, value, miliseconds); z.B // Zustand nach 2 Sekunden auf false setzen setStateDelayed('hm-rpc.5.0001D7099517AF.3.STATE', false, 2000);
  • Ereignisse in Kalender schreiben lassen

    3
    0 Stimmen
    3 Beiträge
    417 Aufrufe
    I
    Hi, https://github.com/WLAN-Kabel/ioBroker.calendar/blob/master/README.md Hat auf seiner TODO liste stehen das man Einträge hinzufügen können soll. Leider wird an dem wohl nicht weiter gearbeitet. Bei mir habe ich das durch ein Javascript gelöst mit dem ich eine ics Datei erstelle und diese dann mittele http request hochlade. Ich wäre aber auch sehr daran interessiert einen Kalender Adapter zu haben mit dem man Lesen und schreiben kann.
  • Error aus Log File per Pushover/Telegram versenden

    monitoring javascript blockly
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    L
    @cruzix Guten Abend zusammen, Ich lasse mir über das obige Skript die iobroker Fehlermeldungen per Telegramm zuschicken. Leider steht aber manchmal im log das der Text zu lang ist und deswegen nicht gesendet wurde. Dieses Script nutze Ich: let timeout = null; let message = ''; onLog('error', data => { if (data.from && data.from.includes('telegram.')) { return; // prevent loop } message += data.message + '\n'; const telegramMessage = "Error occured:" + "\n" + message clearTimeout(timeout); timeout = setTimeout(() => { sendTo("telegram.0","send", { text: telegramMessage , chatID: 123456789 }); console.log('Following was sent to telegram: ' + message ); message = ''; },10000) }); Ich hab irgendwo was davon gelesen das man die Nachricht aufteilen muss, aber ich weiß ehrlich gesagt nicht wie. Könnte mir jemand helfen . Besten Dank
  • EXEC Ausführung geht nicht

    11
    0 Stimmen
    11 Beiträge
    980 Aufrufe
    mickymM
    @smartuser_1 So was ähnliches habe ich hier schon mal mit NodeRed implementiert https://forum.iobroker.net/topic/49120/datenpunkt-in-log-oder-csv-file-schreiben?_=1644350499053 aber gibt sicher auch Leute, die Dir das mit Blockly implementieren können.
  • [Gelöst] Wasseralarm per Sprachausgabe

    13
    2
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    E
    @stephan1966 sagte in [Gelöst] Wasseralarm per Sprachausgabe: @haselchen Funktioniert, Danke :+1: [image: 1644319027006-1.jpg] ich würde die Lautstärke nach der Ansage reduzieren. Könnte vllt bei der nächsten Aktion der Alexa zu laut sein
  • Wie verwende ich Objekte von "LinkedDevices" in Skripten?

    5
    0 Stimmen
    5 Beiträge
    401 Aufrufe
    C
    @homoran Ein Beispiel dafür, wie ich dies in einem Skript verwenden möchte. [image: 1644332163352-b08b6e2b-4a48-4719-b102-3b63f93887f0-image.png] Aber es wird rot hervorgehoben. Wie macht man es richtig? Skript mit Variablen aller verlinkten Objekte erzeugen
  • [Gelöst] Linux Control Adapter Eigener Befehl Probleme

    7
    2
    0 Stimmen
    7 Beiträge
    187 Aufrufe
    liv-in-skyL
    @sunny9999 ah - jetzt hab ich kapiert - dann paßt es ja
  • Alle States einer bestimmter Funktion lesen / schreiben.

    10
    0 Stimmen
    10 Beiträge
    208 Aufrufe
    Ben1983B
    @paul53 ja stimmt. Ich dachte mir gerade, man weist eine Funktion zu und benötigt keine ids mehr. Wäre ein neuer Ansatz für mich. Und vor allem sehr Wartungsarbeiten bei Austausch. Ok man muss die Funktion zuweisen, aber sonst muss man die id zuweisen. Frage ist nur, ob man das bei Adaptern einfach machen kann.
  • Tado wieder in den automatik modus / Zeitplan modus schalten

    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    T
    @bluelinux said in Tado wieder in den automatik modus / Zeitplan modus schalten: Hallo... wollte mich mal hier einklinken.... Kann man denn den Zustand in irgend einem Datenpunkt auslesen welcher Modus Aktiv ist? Also ob Zeitplan oder Manuell? Ich hatte die selbe Frage und hab mir das kurz mal erarbeitet auf meinem ioBroker: Soweit ich das verstehe, kann die automatische Zeitsteuerung nur durch das Setzen der Datenpunkte unter: tado.{instance}.{bridge}.Rooms.{roomId}.overlay.termination überschrieben werden. Darüber lässt sich auch feststellen, ob der Zeitplan gerade aktiv. Regelt man die Temperatur in der Tado App wird der Zeitplan immer nur temporär überschrieben (Standard 1 Stunde) Der Datenpunkt: type Wird hierfür auf "TIMER" gesetzt. Im Datenpunkt: durationInSeconds steht in diesem Fall die Dauer in Sekunden (Standard 3600 für eine Stunde) Über den Datenpunkt: typeSkillBasedApp Kannst du selbst einen Status schreiben. Folgende Werte sind möglich: "MANUAL" -> Arbeitet ohne Timer "NEXT_TIME_BLOCK" -> Aktiviert den Automatikmodus beim Wechsel in den nächsten definierten Zeitblock "TIMER" -> Aktiviert den Automatikmodus wenn die Zeit unter remainingTimeInSeconds auf 0 steht. Das aktive Setzen eines Timers solltest Du aber über den Datenpunkt "durationInSeconds" erledigen. Dann erledigt die Tado Cloud den Rest. Um jetzt noch Deine Frage zu beantworten: Steht der Wert unter Type auf "(null)" ist der Automatikmodus aktiv. Steht etwas anderes da (siehe mögliche Werte fürs Setzen) ist er es nicht. Ich hoffe ich konnte helfen.
  • ESP8266 MQTT connection closed: timeout

    6
    0 Stimmen
    6 Beiträge
    244 Aufrufe
    Q
    @peter-koch sagte in ESP8266 MQTT connection closed: timeout: Ich bekomme das Sketch aber nicht abgeändert. was genau bedeutet das? ist die datei schreibgeschützt? kommt ein fehler beim kompilieren?
  • gelöst MQTT: Tesla SOC auslesen und openWB in einem topic

    24
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    L
    @lumajo Kurzes Update, aus irgendeinem Grund hat der Tesla Adapter ein neues Fahrzeug angelegt. Das versteh ich nicht aber jetzt geht es wieder... Da die App auch aktualisiert wurde, ua ist eine Ladehistorie dazu gekommen könnte es vielleicht damit zu tun haben. Ich beobachte das mal....aber jetzt geht es erstmal wieder.

295

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge