Skip to content

Skripten / Logik

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

16.6k Themen 213.7k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    G
    @Waly_de da fehlt der Anfang irgendwie ;-) Schaue ich mir wie gesagt man an. Was nutzt Du sonst als "Entwicklungsumgebung"? Testest Du direkt in iobroker mit debug-Ausgaben oder gibt's da noch einen anderen Weg? ("echtes" debugging?)
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    DuffyD
    @paul53 Danke für den Hinweis.
  • 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
  • Echo (Alexa) Musik bei Präsenz - Geht das?

    multimedia javascript
    4
    0 Stimmen
    4 Beiträge
    600 Aufrufe
    J
    @Hansi123 dann hast das Problem schon erkannt. Synchron geht eigentlich nur bei Multiroom, da so der Alexa Server das steuert. Wenn je ein Dot dann noch dazu soll, wird der separat versorgt, was in der regel dafür sorgt, dass zwar die selbe Musik läuft, aber leider nicht ganz synchron. Die einzige Möglichkeit, die ich sehe, Du startest grundsätzlich Multiroom und steuerst über die BWMs nur "Ton an/aus", so ist das auf alle Fälle synchron.
  • [gelöst] Schleife nach 3 min abbrechen

    blockly
    6
    1
    0 Stimmen
    6 Beiträge
    309 Aufrufe
    Dr. BakteriusD
    @skokarl Kommt auf den Button an, aber vielleicht so: [image: 1590555964546-blockly.png]
  • Staubsaugersteuerung - sequentielles script möglich?

    blockly scenes
    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    B
    hehe ;) habe das bei mir noch geupgraded: [image: 1590490455125-unbenannt.png] so kommt er jeden 3. Tag zur Tür gefahren, wenn ich heim komme
  • Einfügen aus Zwischenablage[gelöst]

    javascript
    5
    0 Stimmen
    5 Beiträge
    612 Aufrufe
    S
    @mcgl :+1:
  • falls wert länger als 2 minuten immer <x, dann...?

    javascript blockly
    4
    0 Stimmen
    4 Beiträge
    581 Aufrufe
    Amnesia1211A
    @chrbo80 Hoffe es hat geklappt, kein Problem.
  • Erkenneung ob Gerät fertig ist via Leistungsaufnahme

    javascript blockly monitoring
    16
    2
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    Albert KA
    @dehein2 Hatte die gleichen Probleme mit meinen Maschinen. Die Analyse der Leistungsaufnahme Diagramme haben mich dann auf die richtige Spur gebracht (zumindest eine die für mich passt) Nicht nur die Leistungsaufnahme ist interessant sondern auch deren Laufzeiten. Die Unterschiede in der Leistungaufnahme von zB Trocken Phasen und Standby sind bei meinen Geräten nicht unterscheidbar. Allerdings ist die Zeitdauer dieser Endphasen einigermaßen konstant. Beispiel Spülmaschine (läuft je nach Beladung und Verschmutzungsgrad 60 min bis zu über 2 Std). Die letzte Trocken Phase vor dem letzten Abpumpen dauert aber immer zwischen 8 und 12 Minuten und zieht 3 bis 4 Watt (so wie auch der Standby Betrieb) Wir waschen, trocknen und spülen nachts (Nacht Tarif) und deshalb laufen dann die Geräte im Standby weiter bis sie morgens abgeschaltet werden (oder auch vergessen werden). Das stört mich. Mit einer 15 minütigen Standby Zeit kann ich aber leben, d.h. nach kontinuierlichen 15 Minuten unter 5 Watt schalte ich den Strom der Steckdose ab. Mit einem minütlichen Intervall und einem Zähler zähle ich die Minuten unter 5W Leistungsaufnahme. Wenn die Leistungsaufnahme innerhalb von 15 Minuten wieder ansteigen sollte (wie zB nach 8 bis 12 Minuten trocknen zum letzten Abpumpen mit 25W)), dann wird eben der Zähler wieder auf Null gesetzt und startet von vorne wenn die Leistungsaufnahme wieder unter 5W sinkt.. Ähnlich könnte man ja auch einen Knitterschutz erkennen wenn dieser in einigermassen festen Zeitabständen abläuft. Nach 5 mal Knitterschutz kann man dann sicher annehmen dass die Maschine fertig ist und den Strom abschalten und/oder eine Nachricht versenden. Ich habe das gleiche Skript für mehrere Geräte die im Standby Strom ziehen nur leicht angepasst (Mikrowelle, Dampfgarer, Waschmaschine, Trockner) und bin damit eigentlich zufrieden. Lieber 15 Minuten im Standby als 24 Stunden oder mehr im Standby. Vorausetzung ist natürlich eine entsprechende Smart Steckdose, oder ähnliches, die die Leistungsaufnahme im Sekunden oder Milli Sekunden Bereich aktualisiert.
  • Text2Command und virtueller Tastendruck

    security template blockly
    19
    0 Stimmen
    19 Beiträge
    1k Aufrufe
    BBTownB
    @samsungfreak so sieht bei mir beispielsweise das Einschalten und das Ausschalten eines solchen Datenpunktes (hier meine Außenlampen) per telegram-Kommando aus: [image: 1590339702995-c4ed3c16-d81e-4a67-a50d-30f663f34a87-image.png]
  • Timeout (Blockly) Restlaufzeit anzeigen in VIS

    blockly
    2
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    paul53P
    @overfl0w Intervall anstelle timeout verwenden und die Restzeit runterzählen und in einen Datenpunkt schreiben, der in Vis angezeigt wird. Siehe hier oder [image: 1590337067404-blockly_temp.jpg]
  • Pool Zeituhr für Pumpe

    blockly javascript
    33
    0 Stimmen
    33 Beiträge
    2k Aufrufe
    D
    Also nach langen hin und her habe ich und kann es jetzt auch nur jedem Empfehlen das Skript von @Pittini genommen. Danke an allen, ich hab wieder mal einiges gelernt :-)
  • Tabelle / Liste mit Blockly und VIS

    javascript blockly
    2
    0 Stimmen
    2 Beiträge
    568 Aufrufe
    M
    so... selbst ist der Mann ! falls mal jemand sowas braucht hier meine Lösung: Javascriptfunktion , die die Json-Tabelle erweitert... if (getState("0_userdata.0.Anwesenheit.Putzfrau.JSON").val=="") { setState("0_userdata.0.Anwesenheit.Putzfrau.JSON", JSON.stringify([])); } liste = JSON.parse(getState("0_userdata.0.Anwesenheit.Putzfrau.JSON").val); liste.push({ "Nr": getState("0_userdata.0.Anwesenheit.Putzfrau.Anzahl_Monat").val, "kommen": getState("0_userdata.0.Anwesenheit.Putzfrau.Kommen").val, "gehen": getState("0_userdata.0.Anwesenheit.Putzfrau.Gehen").val, "dauer": getState("0_userdata.0.Anwesenheit.Putzfrau.Anwesend").val, "lohn": getState("0_userdata.0.Anwesenheit.Putzfrau.Verguetung_Heute").val}) setState("0_userdata.0.Anwesenheit.Putzfrau.JSON", JSON.stringify(liste));
  • Rollladen Höhe entspricht nicht Datenpunkt

    blockly
    11
    1
    0 Stimmen
    11 Beiträge
    446 Aufrufe
    M
    (un)fun Fact: Ist der Rollladen noch unten und ich geb den Befehl er soll hochgehen, läuft er statt bis 55% bis 100%. Ist der Rollladen schon oben und ich geb den Befehl er soll hochgehen, läuft er auf 0%.
  • [gelöst] Differenz von 2 timestamps berechnen

    javascript
    5
    0 Stimmen
    5 Beiträge
    775 Aufrufe
    P
    @paul53 sagte in Differenz von 2 timestamps berechnen: // Erfassen Start-Stop-Zeiten Kreis-1 if(dp.common.name === 'Gartenberegnung - Ventil 1'){ if(dp.state.val) { var StartzeitKreis1 = dp.state.lc; setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start', StartzeitKreis1 ); log('Startzeit Beregnung Kreis-1 gesetzt'); } else { var StopzeitKreis1 = dp.state.lc; var GesamtKreis1 = (StopzeitKreis1 - dp.oldState.lc) / 1000; setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop', StopzeitKreis1); setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-gesamt', GesamtKreis1 ); log('Stopzeit Beregnung Kreis-1 gesetzt'); log('Gesamtzeit: ' + GesamtKreis1 ); } } Hi Paul, danke hat super geklappt. Gruß Johnny
  • Bei Anwesenheit soll das Licht an bleiben.

    blockly
    3
    2
    0 Stimmen
    3 Beiträge
    308 Aufrufe
    paul53P
    @Paul-Che sagte: Aktuell einfach nur Licht: Selbst dass funktioniert nicht richtig. Trigger innerhalb eines Triggers ist keine gute Idee ! Das, was mit diesem Blockly wohl erreicht werden soll, kann etwa so aussehen: [image: 1589817199748-blockly_temp.jpg]
  • Alexa commands Speak Pausen

    blockly
    2
    0 Stimmen
    2 Beiträge
    311 Aufrufe
    padrinoP
    @TTBerlin Yep :relieved: https://forum.iobroker.net/post/433163
  • Licht geht allein aus !!

    javascript
    7
    0 Stimmen
    7 Beiträge
    661 Aufrufe
    B
    @smarthome2020 Danke Dir nach 19:00 Uhr will ich auch die Option mit schalter schalten solange bis ich aussschalte ! @ticaki Danke Dir teste das 2te script mal weil Shelly
  • [gelöst] Datenpunkt per MQTT publishen

    javascript communication
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    Rene55R
    @paul53 Danke für die Antwort. Ja, MQTT (mosquitto) läuft auf einem separaten Rechner. Eine Instanz des MQTT Broker/Client läuft auch schon (wenn auch ohne Authentifizierung [hiermit habe ich auch noch meine Probleme]) auf dem ioB. Dank des gestrigen Updates des MQTT-Adapters habe ich die Lösung hierfür gefunden. Ich kann im Javascript folgende Zeile benutzen: code_text ```sendTo('mqtt.0', 'sendMessage2Client', {topic: 'SmartHome/Text', message: message});``` code_text Somit können wir meine Anfrage als gelöst ansehen.
  • [gelöst] (vorübergehend) Luftgütesensor BME 680

    Verschoben
    12
    1
    0 Stimmen
    12 Beiträge
    7k Aufrufe
    G
    @Chaot Besten Dank für das Teilen deines Scriptes. Als Tipp für Newbies die evtl. genau so fragend vor dem PC sitzen und sich wundern warum immer nur 100 als Wert erscheint: Ihr müsst den Zahlenbereich des angelegten Datenpunktes "Luftguete" entsprechend anpassen ;)
  • Script läuft einfach nicht!

    javascript
    20
    0 Stimmen
    20 Beiträge
    715 Aufrufe
    paul53P
    @fischi87 sagte: ergänzen? Ja.
  • Waschmaschine / Trockner blockly

    blockly monitoring javascript
    6
    1
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    D
    Vielen Dank an alle, der erste Tipp hat schon zum Erfolg geführt
  • JS lokal bearbeiten - hochladen - service restarten

    javascript
    9
    0 Stimmen
    9 Beiträge
    962 Aufrufe
    J
    Ich meine den cli-Befehl "mv". Also jetzt, nachdem ich die Mirror-ordner via chmod auf 777 (shame on me) geändert habe, sind die Skripte wieder da O_o kA ob das Absicht ist? Scheint auf jedenfall irgendein perm-thema gewesen zu sein.

613

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge