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
    HomoranH
    @BertDerKleine sagte in Skript aufteilen möglich?: Ich wiederhole nochmal was die Intention ist: Langes Javaskript in zwei kleinere Skripte aufteilen. Soll trotzdem noch weiter funktionieren. zB Hauptfunktionen in A, Nebenfunktionen in B oder was auch immer als Splitkriterium. Leider hat diese "Beschreibung" keinerlei Aussagekraft, was du mit "lang" und "weiter funktionieren" meinen könntest.
  • 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
  • Mähroboter per Blockly starten

    blockly
    5
    3
    0 Votes
    5 Posts
    2k Views
    arteckA
    @Bastian-Rüggen da hat der @Sven_Topp doch ein schickes script geschrieben der genau das macht was du suchst .. warum das Rad 2 mal erfinden
  • Datenpunkt Date

    javascript
    2
    1
    0 Votes
    2 Posts
    131 Views
    M
    Edit: klappt nur Verzögert, offenbar klappt die Datenübergabe nur nach Aktualisierung Es hat was mit dem Eingabetype zu tun. Bei Date klappte es nur nach Aktualisierung, bei Text/String sofort
  • Skriptleichen entfernen

    javascript
    5
    0 Votes
    5 Posts
    495 Views
    B
    Cool! Danke :+1:
  • Echo (Alexa) Musik bei Präsenz - Geht das?

    multimedia javascript
    4
    0 Votes
    4 Posts
    615 Views
    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 Votes
    6 Posts
    311 Views
    Dr. BakteriusD
    @skokarl Kommt auf den Button an, aber vielleicht so: [image: 1590555964546-blockly.png]
  • Staubsaugersteuerung - sequentielles script möglich?

    blockly scenes
    15
    0 Votes
    15 Posts
    1k Views
    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 Votes
    5 Posts
    614 Views
    S
    @mcgl :+1:
  • falls wert länger als 2 minuten immer <x, dann...?

    javascript blockly
    4
    0 Votes
    4 Posts
    595 Views
    Amnesia1211A
    @chrbo80 Hoffe es hat geklappt, kein Problem.
  • 0 Votes
    16 Posts
    2k Views
    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 Votes
    19 Posts
    1k Views
    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 Votes
    2 Posts
    1k Views
    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 Votes
    33 Posts
    2k Views
    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 Votes
    2 Posts
    570 Views
    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 Votes
    11 Posts
    446 Views
    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 Votes
    5 Posts
    786 Views
    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 Votes
    3 Posts
    308 Views
    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 Votes
    2 Posts
    312 Views
    padrinoP
    @TTBerlin Yep :relieved: https://forum.iobroker.net/post/433163
  • Licht geht allein aus !!

    javascript
    7
    0 Votes
    7 Posts
    677 Views
    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 Votes
    3 Posts
    1k Views
    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

    Moved
    12
    1
    0 Votes
    12 Posts
    7k Views
    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 ;)

371

Online

32.7k

Users

82.5k

Topics

1.3m

Posts