Skip to content

Skripten / Logik

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

16.5k Themen 213.2k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    P
    Oben steht, dass der Server öfter mal offline ist. Da ist ping meine erste Idee. Ob der Server auf Pings antwortet, weiß ich nicht. Reagiert der Server nicht auf ping, dann evtl. als Ersatz einen httpcheck nehmen. httpcheck nutze ich auf der Synology, bevor die auf den ioBroker zugreift. # ===== HTTP-Check statt Ping ===== curl -s --connect-timeout 3 "$BASE/system.adapter.admin.0.alive" > /dev/null || exit 1 Ist allerdings ein Bash-Skript. Das muss für die Zwecke angepasst werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    M
    Ich habe einen zweiten Statuspunkt (Briefkasten_State) dazu genommen, den ich über einen Button immer wieder zurücksetze. [image: 1769854217178-screenshot-2026-01-31-110831.png]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • Gewerk durchsuchen

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    811 Aufrufe
    bahnuhrB
    Also ich bekomme es nicht hin. Ausgangslage: Im Gewerk "Batterie betrieben" habe ich alle Aktoren die eine Batterie haben. Lt. iobroker (Lasche Aufzahlungen) sind dies 96 Aktoren. Dies kommt auch hin. Anforderung: Alle Aktoren ermitteln die "lowbat" haben. Versuch1: - durchsuchen alle Geräte (function… -> nicht angegeben) var cacheSelectorLOWBAT = $('channel[state.id=*.LOWB*]'); log (cacheSelectorLOWBAT.length); Als Ergebnis bekomme ich 140. Hierbei sind teilweise Aktoren doppelt: filename="bild1.jpg" index="0">~~ Einmal mit dieser "0" und einmal ohne "0". Weiterhin Warnhinweis im log: "cux … lowbat not found" Versuch2: - durchsuchen Gewerk "Batterie betrieben" (functions="Batterie betrieben") var cacheSelectorLOWBAT = $('channel[state.id=*.LOWB*](functions="Batterie betrieben")'); log (cacheSelectorLOWBAT.length); Als Ergebnis bekomme ich 26. Hier fehlen auf einmal sämtliche Heizung Aktoren. Warum weiß ich nicht. Versuch3: - durchsuchen nur Gewerk "Heizung" (functions="Heizung") var cacheSelectorLOWBAT = $('channel[state.id=*.LOWB*](functions="Heizung")'); log (cacheSelectorLOWBAT.length); Als Ergebnis bekomme ich 0. Warum werden die Aktoren nicht gefunden ??? Fazit: Wie bekomme ich es hin, dass die Aktoren gesucht und gefunden werden die im Gewerk "Batterie betrieben" sind. Alternativ auch alle Aktoren durchsuchen (würde mir aber nicht so gefallen, da dann bei den cux-Geräten ein warn Hinweis im log erscheint "cux … lowbat not found" Irgendwie raff ichs nett. Bitte Hilfe. mfg Dieter
  • [gelöst] From Dusk Till Dawn

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    rantanplanR
    @ldittmar: Hallo Leute, ich würde gerne bei einem Ereignis etwas ausführen, wenn es gerade zeitlich zwischen "dusk" und "dawn" ist, aber irgendwie klappt es nicht. Ich habe versucht Astrozeiten zu holen, die in String-Uhrzeit umzuwandel und dann mit "between" zu veegleichen, aber ohne erfolg. (bin gerade unterwegs und kann ggf später mein code posten). Grüße, ldittmar ` Hallo ldttmar Schau mal hier http://forum.iobroker.net/viewtopic.php … 891#p48209 Vielleicht kannst Du mit diesem Prinzip etwas anfangen. Grüße
  • TV Spielfilm - CSS Einstellungen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    P
    Hallo, für den Anfang könnt ihr mal den oberen Teil der CSS-Anweisungen weglassen. Also ! Diesen Code rauslöschen .tclass-th { /* Headerzeilen */ background-color: darkgrey; background-color: rgba(100,100,100,0.8); color: white; font-weight: bold; font-family: Arial; } >! .tclass-th1 { /* linker Header */ width: 20px; text-align: center; color: transparent; /* Text ausblenden */ /* display: none; */ /* ganze Spalte ausblenden */ } >! .tclass-th .tclass-th1 { display: none; /* Spaltenüberschrift überm Bild ausblenden*/ } >! .tclass-tr { color: red; } >! .tclass-tr:nth-child(odd) { background-color: darkgreen; background-color: rgba(50,120,80,0.6); } >! .tclass-tr:nth-child(even) { color: yellow; background-color: darkred; background-color: rgba(150,150,150,0.2); } Gruß Pix
  • [gelöst] Dimmer: Auf Leveländerung erst triggern, wenn sich der Wert nicht mehr ändert?

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    T
    Habs rausgefunden :idea: Der on-Trigger wird mit dem Parameter für das Gewerk erweitert: on({id: /^hm-rpc\.[.:\w\d-]+\.DIRECTION$/, change: "any", val: 0, enumName: "triggerDim", logic: "and"}, function(obj) { console.log("Dimmen beendet: " + obj.newState.val); }); Meine nächste Baustelle lautet RegExp :!: Nochmals danke !!!
  • [gelöst] Laderegelung für Tablet

    Verschoben
    27
    0 Stimmen
    27 Beiträge
    5k Aufrufe
    MathiasJM
    Ok danke! Dann hänge ich den Aktor an die Steckdose, an der der PC hängt Danke, Mathias
  • CCU-Historian Import

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    apollon77A
    Kommt drauf an wie Du es schreiben wollen würdest … Am Ende nimmt die "storeState" (sorry Name doch leicht anders) Funktion und bekommt eine oder mehrere States übergeben. State hat immer "id" mit der Id und dann die Daten. Welche das so sind schau es Dir in den History-JSON Files an ... habs grad nicht im Zugriff.
  • [gelöst] Fritzbox - Adapter; unbekannt = "### ? ###" lässt sich nicht verarbeiten

    Verschoben
    20
    0 Stimmen
    20 Beiträge
    2k Aufrufe
    bahnuhrB
    Vom Adapter - hab ich mir schon gedacht. Trotzdem muss man das erst einmal wissen. Man versucht halt mit der normalen Leertaste eine if abfrage zu basteln und ist fast am verzweifeln warum dies nicht klappt. Danke für den Tipp mit dem "alt + Leertaste". Muss ich mal versuchen. Wieder was gelernt. Mit freundlichen Grüßen
  • RS232 unter javascript adapter ansprechen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    BlackmikeB
    @paul53: Hilft Dir das NPM-Modul https://www.npmjs.com/package/raspi-serial ? ` danke paul, ich denke das ist die lösung, wo ich ansetzen werde.. sobald ich die rs232 geöffnet kriege ist alles ok. thnx, black
  • Erkennung neuer States im JS

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    583 Aufrufe
    P
    Hm, ich habe den Netatmo Adapter entsprechend angepasst, so das dieser nun neue Events in einen eigenen State schreibt … Damit hat sich die Frage erledigt! Generell würde mich aber interessieren, wie man auf komplett neue States subscriben kann
  • Wochenprofile vom Raumthermostat per Script auswählen

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    N
    Ist zwar schon länger her aber trotzdem mal die vorsichtige Frage…. Gibt es für das Umschalten von Wochenprogrammen (Wandthermostat) schon eine funktionierende Möglichkeit? Gruß Thomas
  • Blockly keine Auswahl

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    585 Aufrufe
    juergen2908J
    Hat sich erledigt, lag am Browser (IE) @juergen2908: Grüß Euch, wollte heute Blockly ausprobieren. Leider habe ich keine Auswahl. iobroker läuft auf einer pi 2b. was fehlt mir da? Bitte um Hilfe LG Jürgen `
  • Milight hack per Serialport über ein script ansprechen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    641 Aufrufe
    Niemand hat geantwortet
  • Script in einem Widget mit HTTP GET Befehl

    Verschoben
    14
    0 Stimmen
    14 Beiträge
    3k Aufrufe
    hg6806H
    Jetzt geht es halbwegs. Sind immer noch 2 Warnings drin. Wenn ich 2 Schleifendurchgänge einstelle, wird nur um 0,5dB erhöht, bei 4 Durchgängen wird um 1dB erhöht. Irgendwas stimmt da mit der Schleife wohl noch nicht. Mir reicht es aber so, ich werde es einfach so einstellen, dass sich pro Tastendruck um 1,5dB erhöht. Danke nochmals!
  • RunScript / stopScript Problem

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    M
    Hallo, ich habe noch etwas weiter experimentiert und festgestellt, dass man das stopScript nur mit dem reinen Scriptnamen aufrufen darf. Also z.B.: stopScript("Lichtautomatik_Couch"); Dann wird unter Objects das Value = true gesetzt. Zurücksetzen des Value geht aber nicht!? Das ist ja nötig, um das Script erneut vom Button aus starten zu können. Forsche mal weiter… Viele Grüße myiob
  • [gelöst] Anbindung CONRAD Transponder RF-Leser über serialport

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    829 Aufrufe
    Niemand hat geantwortet
  • [Erledigt]Hilfe Javascript Wert aus Alexa in SV schreiben

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    553 Aufrufe
    paul53P
    setStateDelayed(idlautstaerke, x, 1000); // Nach einer Sekunde den Wert in XBMC Volume schreiben
  • Countdown vorzeitig stoppen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    D
    Klasse. Funktioniert genau so, wie gewünscht. Vielen, vielen Dank. Gruß, Thorsten
  • Gewerke "durchschleifen"

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    873 Aufrufe
    M
    Ich habe es mir mal rudimentär angesehen und es sieht so aus, als wäre es eine machbare Aufgabe, aber man müsste sich einarbeiten. Für mich ist leider der Januar die reinste Einarbeitungshölle geworden und da passe ich auf die Schnelle, aber ohne eine solche Listenfunktion kann ich viele Skripte nicht portieren .. mal sehen, was mir da noch einfällt. Zum Glück sind Blockly und iobroker.JavaScript gut dokumentiert.
  • SayIt - Ausgabe bei Wetterwarnung (DWD)

    Verschoben
    40
    0 Stimmen
    40 Beiträge
    6k Aufrufe
    N
    Hi, welche Ursache könnte es haben, dass bei diesem Skript die eigentliche Meldung (also idDWD) nicht mit ausgegeben wird obwohl sie in den Datenpunkten vorhanden ist. Irgendwie sehe ich den Wald vor lauter Bäumen nicht….. var Severity = "dwd.0.warning.severity"/*Warning severity*/; var request = require("request"); var ansage2 = "Eine bestehende Wetterwarnung wurde aufgehoben." ; on(Severity, function (obj) { if (obj.newState.val !==0) { var idDWD = getState("dwd.0.warning.description"/*Warning description*/).val; var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val; var End = getState("dwd.0.warning.end"/*Warning end*/).val; Url = "http://192.168.178.58:50000/tts=Der Deutsche Wetterdienst meldet." + idDWD ; request(Url); } if (obj.newState.val === 0) { Url = "http://192.168.178.58:50000/tts=" + ansage2 ; request(Url); } }); Danke für die Unterstützung. Gruß Thomas
  • XML Ausgabe parsen - DENON

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    B
    Mahlzeit, keine Ahnung ob das der eleganteste Weg ist, aber über den Weg JSON Objekt - bearbeiten - Array einlesen komme ich jetzt an die Werte: var link = 'http://IPdesAVR/goform/formMainZone_MainZoneXmlStatusLite.xml'; var request = require('request'); var parseString = require('xml2js').parseString; function datenlesen() { request(link, function (error, response, body) { var xml, result; parseString(body, function (err, result) { log("XML Objekt: " + result); xml = JSON.stringify(result); log("XML Objekt: " + xml); xml=replaceAll(xml,'[',''); xml=replaceAll(xml,']',''); xml=JSON.parse(xml); log ("Power: " + xml.item.Power.value); log ("Input: " + xml.item.InputFuncSelect.value); log ("Volume: " + xml.item.MasterVolume.value); log ("Mute: " + xml.item.Mute.value); }); }); // Ende request } datenlesen(); function replaceAll(string, token, newtoken) { if(token!=newtoken) while(string.indexOf(token) > -1) { string = string.replace(token, newtoken); } return string; } Das ergibt: 13:44:34.573 [info] javascript.0 script.js.##_Denon: XML Objekt: {"item":{"Power":[{"value":["OFF"]}],"InputFuncSelect":[{"value":["Favorites"]}],"VolumeDisplay":[{"value":["Absolute"]}],"MasterVolume":[{"value":["-60.0"]}],"Mute":[{"value":["off"]}]}} 13:44:34.573 [info] javascript.0 script.js.##_Denon: Power: OFF 13:44:34.573 [info] javascript.0 script.js.##_Denon: Input: Favorites 13:44:34.573 [info] javascript.0 script.js.##_Denon: Volume: -60.0 13:44:34.573 [info] javascript.0 script.js.##_Denon: Mute: off Und ich kann es weiter verarbeiten… Danke. Grüße Brati

726

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge