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
    @Rushmed sagte in ioBroker Prozess- & Gesundheitsmonitor + Grafana Dashboard: DisabledAdaptersCount --> dieser DP wurde vom Script nicht erstell edit falsch gelesen [image: 1774049513585-0bf3476b-6937-4f0d-84fd-42ca7cfa1466-image.png] wurde auf nem testpfad sauber angelegt @Rushmed sagte in ioBroker Prozess- & Gesundheitsmonitor + Grafana Dashboard: 0_userdata.0.Systeminfos.ioBroker.Prozesse.CronRestartCount steh ja auch so oben in der Übersicht mit den Datenpunkten
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    L
    Ich habe jetzt in jeden schaltprozess ein Intervall eingebaut. Leider startet aber jetzt das Intervall nicht mehr direkt.
  • 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
  • HM-LC-Sw1PBU-FM Schalter per ioBroker steuern

    Moved
    12
    0 Votes
    12 Posts
    2k Views
    J
    Wenn das alle alle Datenpunkte und Kanäle sind, dann ist beim einlesen etwas schief gelaufen. Bitte die Objektansicht im iobroker aktualisieren (Button oben links, Kreis/Pfeil). Sollte das nicht ausreichen müssen die Geräte nochmals synchronisiert werden. So sieht die normale Ansicht aus: [image: 6696_bildschirmfoto_2018-12-23_um_10.14.28.png]
  • 0 Votes
    14 Posts
    2k Views
    S
    Nein, bin leider nicht so ein Crack… :|
  • Schalter mit zwei unterschiedlichen Zuständen

    Moved
    4
    0 Votes
    4 Posts
    514 Views
    A
    Hallo zusammen, habe eine Lösung gefunden (war ein Betrag über Dimmen) Hier mein Code: const idLong = "javascript.0.Signale.Flur.Taster-Haustuer-OL"; const idLevel= "javascript.0.Zustand.EG.Licht-Schummer"; var state; on(idLong, function(dp) { if (getState(idLong).val) state=1; setTimeout(function() { // Es wird 500ms gewartet und überprüft, ob der Taster wieder Null wird if(!getState(idLong).val && state) { //kurz gedrückt setState(idLevel, 1); state = 0; } if(getState(idLong).val && state) { // Lang gedrückt setState(idLevel, 0); state = 0; } }, 1000); }); Wohl nicht die feine Programmoiervariante, aber es funktioniert. André
  • Function mit 2 Eingängen

    Moved
    2
    0 Votes
    2 Posts
    296 Views
    R
    Nein Gesendet von iPhone mit Tapatalk
  • [Gelöst] Fenster offen manuell setzen?

    Moved
    3
    0 Votes
    3 Posts
    273 Views
    G
    Ok, schlecht ausgedrückt. Es geht um die Heizkörperregler die ich über einen fremden Türsensor zu steuern. Bin inzwischen drauf gekommen. Es ist 0 (Close) und 1 (open) zu setzen. Nachtrag: Man muß das Modul "Steuere" verwenden, sonst erkennt es die CCU den Eintrag nicht und setzt das dazugehörige Objekt nicht auf "Fenster offen".
  • RF Bridge mit intertechno fb

    Moved
    1
    0 Votes
    1 Posts
    234 Views
    No one has replied
  • [Gelöst] Trigger Astro Funktion mittels Datenpunkt auswählen

    Moved
    3
    2
    0 Votes
    3 Posts
    390 Views
    DAN78D
    Hallo, danke für die Rückmeldung, ich werde es probieren. Alternativ wäre mit auch eingefallen, in der logik eine Datenpunkt mit der aktuellen Zeit von gewählten Astro Zeitpunkt zu schreiben. Darunter dann ein Cronjob Trigger. (ähnlich wie Beispiel Wecker in Anleitung Blockly) Dein Tip ist die bessere und sauberere Lösung
  • Mail mit 2-3 Anhängen - Live Kamera Bilder

    Moved
    1
    1
    0 Votes
    1 Posts
    204 Views
    No one has replied
  • *Gelöst* Fensterkontakte Blockly

    Moved
    11
    1
    0 Votes
    11 Posts
    2k Views
    H
    Es scheint jetzt zu funktionieren mit deinem Beispielskript (virtuell) Vielen Dank für eure Lösungsansätze, man sieht den Wald vor lauter Bäumen manchmal nicht mehr :lol:
  • IP Check Script ??

    Moved
    6
    0 Votes
    6 Posts
    976 Views
    ymurawskiY
    Hi Leute, also ich glaube ich bin einfach zu blöd dafür. Ich probiere jetzt seit stunden das Phantom.js aber er will einfach kein Bild machen. Das Parsen verstehe ich leider nicht. Habe leider kein Plan von Programmieren oder Scripten :roll: Ist es denn möglich das eine Website die Iframe benutzung sperren kann ?
  • Lampencheck bei verlassen des WLANs

    Moved
    6
    0 Votes
    6 Posts
    681 Views
    paul53P
    @jEEESTAR: Der Code sieht momentan wie folgt aus: ` Der Code funktioniert so nicht. Vorschlag: const idAnwesend = 'javascript.0.Datenpunkte.Anwesenheit'; const lights = getObject("enum.functions.lightstatus").common.members; function countLights() { var lichtAn = 0; var name = ''; for(let i = 0; i < lights.length; i++) { if (getState(lights[i]).val) { lichtAn++; name = name + getObject(lights[i]).common.name + ', '; } } var lichtAnText = 'Alle Lampen aus'; if(lichtAn > 0) lichtAnText = 'Lampe(n) ein: ' + name; setState('javascript.0.Datenpunkte.StatusLichtAnText', lichtAnText ); setState('javascript.0.Datenpunkte.StatusLichtAn', lichtAn ); } on({id: idAnwesend, change: 'ne', val: false}, countLights); lightstatus muss den betreffenden Datenpunkten zugeordnet sein
  • [gelöst] Sonos Adapter einfach nur ein aus?

    Moved
    10
    0 Votes
    10 Posts
    828 Views
    T
    Hallo skorpil, schön, dass es läuft. Ich kann dir nur empfehlen, von der CCU ganz wegzugehen (außer als Hub für die Homematic Sachen). Habe ich vor langer Zeit auch getan und es ist einfach viel einfacher und sinniger, Skripte und Co an nur einem Platz in nur einer Systematik zu haben. Mein erstes Skript bzw erster Kontakt mit JavaScript war übrigens damals auch mit dir :) viewtopic.php?f=21&t=3351&p=64569#p64569 Frohe Weihnachten
  • Homematic RPC Time Out

    Moved
    1
    0 Votes
    1 Posts
    675 Views
    No one has replied
  • ObjektID aus Bausteinen variabel gestalten.

    Moved
    4
    0 Votes
    4 Posts
    326 Views
    MikeEchoM
    @RappiRN: (…) Aber eigentlich musst du doch die Adressen in eine Adapterkonfiguration eintragen!? Was genau hast du denn vor, dass du solch eine Eingabe vorhast? ` Es geht mir um die Einbindung von diversen HomeMatic Aktoren. Jedes mal für 8 Rolläden die Adresse rauszusuchen (und mit Javascript/Blockly-Bug gleich zweimal pro Adresse) war mir zu müßig. ;) Ich will ein Gerüst anlegen und dann nur noch einmal die Adresse pro Aktor eintragen müssen. Ich habe die Adresse eben oft im Trigger und im if/then/else… Aber Dein Ansatz hilft mir schonmal, danke dafür!
  • *gelöst* Problem mit Heizungsskript (Heizung runter bei Fenster auf)

    Moved
    5
    2
    0 Votes
    5 Posts
    540 Views
    surfer09S
    Super, das werde ich dann gleich mal umstellen. Vielen Dank an euch! :)
  • Blockly Anfänger brauch Hilfe

    Moved
    4
    1
    0 Votes
    4 Posts
    811 Views
    J
    Wurde denn nun dein Problem mit der https://testsieger-waschmaschinen.de/waschmaschine-test-bis-500-euro/#Bosch_WAN28190_Waschmaschine_fuer_unter_500_Euro_mit_18_im_Stiftung_Warentest nun geklärt?
  • Zeitspanne, Trigger und if Abfrage

    Moved
    3
    0 Votes
    3 Posts
    457 Views
    M
    Ahhhh jetzt habe ich verstanden wie man es machen muss. Vielen Dank für deine Hilfe! :)
  • Node-Red ändert Value, Schaltet aber nicht

    Moved
    12
    3
    0 Votes
    12 Posts
    4k Views
    K
    @Matzebhv: Einzig Scripte bekomme ich so nicht getriggert. Der Datenpunkt wird einwandfrei auf true oder false gesetzt, die zugehörigen Scripte triggern aber nicht. Setze ich den DP von Hand läuft das Script. Mir scheint es wird zwar true/false gesetzt, aber nicht als Logikwert. Hat jemand eine Idee? ` <u>Edit:</u> Mein Problem ist inzwischen behoben: im ioBroker-Ausgangsadapter stand bei Type value drin, dort muss aber command stehen. Dann ging es bei mir. Ich habe ein ähnliches Problem. Ich wollte die Lautstärke meines AV-Receivers per Alexa und Node-Red steuern. Habe ich den Wert im Datenpunkt manuell eingegeben, klappte es, aber nicht, wenn derselbe Wert über Alexa und Node-Red gesetzt wurde. Als workaround habe ich das jetzt so gelöst. Und zwar setze ich den Datenpunkt denon.0.zoneMain.volume über Node-Red, reagiere aber mittels Script nochmals darauf und setze den gleich Wert erneut. Klingt zwar unlogisch, aber anders bekomme ich es nicht zum laufen. on({id: 'denon.0.zoneMain.volume', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("denon.0.zoneMain.volume"/*Main Volume*/, getState("denon.0.zoneMain.volume").val); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyIVdhJTNGJTNGTzZVJTJCRCU0MDklMkMuM2hPVlklNUUlMjIlMjB4JTNEJTIyMzglMjIlMjB5JTNEJTIyMzglMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJ+Z1JDUDVkYkVEKFlFJTJGeDYxQ19MJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFZGVub24uMC56b25lTWFpbi52b2x1bWUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiFQLVYlN0RBJTYwR3BZdyUzQTQlMjNMY0hJJTVEJTQwJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZW5vbi4wLnpvbmVNYWluLnZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTQwNGNrUmxJXyklMjNobiUzQVIlM0ElN0REJTVCLiolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZW5vbi4wLnpvbmVNYWluLnZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U= 4630_2018-12-20_23_03_09-javascript_-_iobroker.png
  • [gelößt] Frage zu Rückgabewert/Callback nach request

    Moved
    5
    0 Votes
    5 Posts
    473 Views
    SteffS
    Hier noch meine Lösung, falls jemand ein ähnliches Problem hat: ! ```` // Variablen deklarieren / ID´s einlesen var request = require ('request'); var bSetAusgang1 = "javascript.0.Netio230B.Set_Ausgang_1"; var bAusgang1 = "javascript.0.Netio230B.Ausgang_1"; ! // Ausgang 1 behandeln on({id: bSetAusgang1, val: true}, function() { log("1. Ausgang 1 soll geschaltet werden"); LeseStatus (1); setState(bSetAusgang1, false); // VIS-Variable wieder zurücksetzen }); ! // Status der Ausgänge lesen function LeseStatus (Out) { var url = "http://192.168.0.190/cgi/control.cgi?login=p:USER:PASSWORD&p=l"; var OutStatus; request(url, function (error, state, body) { if (body) { var abody = body.slice(6, 13).split(' '); // Status der 4 Ausgänge extrahieren und in Array splitten OutStatus = abody[Out-1]; // Übergebener Wert ist vom Typ string!! log("2. Ausgang " + Out + " hat Zustand " + OutStatus); if (OutStatus === "1") { log("3. Ausgang " + Out + " wird ausgeschaltet"); SchalteAusgang ("0uuu"); setState(bAusgang1, false); } if (OutStatus === "0") { log("3. Ausgang " + Out + " wird eingeschaltet"); SchalteAusgang ("1uuu"); setState(bAusgang1, true); } } }); } ! // Ausgänge schalten function SchalteAusgang (befehl) { var url = "http://192.168.0.190/cgi/control.cgi?login=p:USER:PASSWORD&p=" + befehl; log ("4. Sende Befehl: " + url); request(url, function(error, state, body) { log("5. Rückmeldung: " + state); }); } Gruß Steffen
  • [ VORLAGE ] Müll Warnung / Erinnerung via Telegram am Vorabend

    Moved
    5
    0 Votes
    5 Posts
    2k Views
    T
    Hallo, das Skript ist leider nicht mehr wirklich zu nutzen. Zu der Zeit als ich es geschrieben habe, war der Adapter noch auf Version 1.4.2 und hatte eien HTML Formatierung, die nun nicht mehr uneingeshränkt so gilt. D.h. die Suchfunktion funktioniert nicht mehr zuverlässig. Der neue Ical Adapter im Stand Version 1.7 ht aber neue Events an Bord, die solch ein Skript ohnehin unnötig machen bzw vereinfachen. Du kannst dort als Event deinen Müll eingeben und dann täglich um 18h (oder wann auch immer) schauen, ob eins der Events auf 1 steht. Dan wäre dieses Event morgen dran und du kannst dir ein Telegram mit der jeweiligen Info schicken lassen

318

Online

32.7k

Users

82.5k

Topics

1.3m

Posts