Skip to content

Skripten / Logik

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

16.4k Themen 211.7k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    O
    @Ro75 funktioniert das Skript noch? Bei mir werden alle Datenpunkte angelegt, ab sowie es scheint nicht befüllt [image: 1763742834364-0ec88837-0570-41cf-a977-f9d0760f616b-image.png]
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    MartinPM
    @Homoran sagte in Wasserleck Blockly: @MartinP sagte in Wasserleck Blockly: Für den Alarmfall MUSS es alle 15 Minuten ein Telegramm geben. das ist nicht der Wunsch! @drapo sagte in Wasserleck Blockly: Ich hätte nun gerne dass wenn das Wasser während 2 Stunden immer läuft ... Die nächste Meldung hätte ich erst gerne 1h später falls das Problem immer noch auftritt. Wenn das Wasser während der 2 Stunden immer (=permanent) läuft, wird es auch alle 15 Minuten ein Telegramm von der Messuhr geben, da sich der Zählerstand geändert hat - die Telegramme bleiben nur aus, wenn es keinen Verbrauch gegeben hat, also kann man davon ausgehen, dass während einer Leckage die Wasseruhr alle 15 Minuten brav ein Telegramm schickt, so lange bis aus dem Leck kein Wasser mehr fließt, oder die Elektronik der Wasseruhr aufgrund geflutetem Keller abgesoffen ist ;-)
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • [GELÖST] Fehler bei Werteänderung von Datenpunkt.

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    566 Aufrufe
    VardaaranV
    @paul53: Es fehlt noch die Deklaration der Variablen forcecreation, oder übersehe ich was ? var forcecreation = false; ```` ` Das waren nur "Code-Auszüge". Hier der gesamte Code: ! ```` // Startvariablen: // ----------------------------------------------------------------------------- ! var logOn = false; // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben. var forecreation = false; // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden) var http = require('http'); // Node Module http verwenden var RQoptions = { // URL, die abgefragt, bzw. gesendet werden soll host: 'ZENSIERT', path: '/params.json', port: 80, auth: 'ZENSIERT', method: 'GET', headers: { 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36', 'content-Type': 'text/plain', 'Accept' : 'application/json, text/javascript' } }; var stringMARKERgesamt = "0000000000000000000000000000000000000000000000000000000000000000"; var MarkerWERT; // Wert LMAir1-Marker var ccuMarker; // Pfad-CCU-Variable. ! // Datenpunkte anlegen: // ----------------------------------------------------------------------------- // Marker: var idMarker1 = "variablen.lmair1.01_pc-101"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker1, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 01', desc: 'PC-101-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker2 = "variablen.lmair1.02_tv"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker2, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 02', desc: 'TV-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker3 = "variablen.lmair1.03_reboot"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker3, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 03', desc: 'Reboot-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker4 = "variablen.lmair1.04_nacht"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker4, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 04', desc: 'Nacht-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker5 = "variablen.lmair1.05_daemmerung"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker5, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 05', desc: 'Dämmerungs-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker6 = "variablen.lmair1.06_tageslicht"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker6, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 06', desc: 'Tageslicht-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker7 = "variablen.lmair1.07_ruhemodus-arbeitszimmer"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker7, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 07', desc: 'Ruhemodus-Arbeitszimmer-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker8 = "variablen.lmair1.08_ruhemodus-schlafzimmer"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker8, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 08', desc: 'Ruhemodus-Schlafzimmer-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker9 = "variablen.lmair1.09_stromausfall"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker9, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 09', desc: 'Ruhemodus-Schlafzimmer-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker10 = "variablen.lmair1.10_deckenlampe-schlafzimmer"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker10, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 10', desc: 'Schlafzimmer-Deckenlampe-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker11 = "variablen.lmair1.11_deckenzusatzlampen-schlafzimmer"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker11, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 11', desc: 'Schlafzimmer-Deckenzusatzlampen-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker12 = "variablen.lmair1.12_deckenlampe-arbeitszimmer"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker12, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 12', desc: 'Arbeitszimmer-Deckenlampe-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); var idMarker13 = "variablen.lmair1.13_unwetter"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idMarker13, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir Marker 13', desc: 'Unwetter-Marker von LMair1', type: 'boolean', def: false, role: 'value' }); ! // Manueller Button: var idButton = "alexa.lmair1-markerauslesen"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idButton, 0, forecreation, { // Datenpunkt wird angelegt name: 'LMAir 1 Marker auslesen', desc: 'Marker von LMAir 1 auslesen', type: 'boolean', role: 'button'/, smartName: { de: 'LMAir 1 Marker auslesen' }/ }); ! // Funktionen: // ----------------------------------------------------------------------------- // Daten abfragen: function DatenAuslesen() { var req = http.get(RQoptions, function(res) { if(logOn) log('STATUS: ' + res.statusCode); // Statuscode if(logOn) log('HEADERS: ' + JSON.stringify(res.headers)); // Header (Rückmeldung vom Webserver) // Buffer the body entirely for processing as a whole. var bodyChunks = []; var chunkLine = 0; res.on('data', function(chunk) { chunkLine = chunkLine + 1; if(logOn) log("Zeilennummer: " + chunkLine+ " ,Inhalt: " + chunk); // Hier können die einzelnen Zeilen verarbeitet werden... bodyChunks.push(chunk); }).on('end', function() { if(logOn) log("ARRAY mit den einzelnen Zeilen: " + bodyChunks); if(logOn) log("ARRAY Länge: " + bodyChunks.length); ! var body = Buffer.concat(bodyChunks);// erhaltene Daten if(logOn) log('BODY: ' + body); // ...und/oder das Gesamtergebnis. DatenVerarbeiten(body); // Abrufen der Bearbeitungs-Funktion }); }); req.on('error', function(e) { // Fehler abfangen log('ERROR: ' + e.message,"warn"); return("error"); }); } ! // Daten verarbeiten: function DatenVerarbeiten(result) { var json = JSON.parse(result); if (json !== null) { stringMARKERgesamt = json["marker state"]; var wertMARKERvon = 1; var wertMARKERbis = 13; var stringMARKERkurz = stringMARKERgesamt.slice(wertMARKERvon-1, wertMARKERbis); var wertDURCHLAUF = 1; while (wertDURCHLAUF <= wertMARKERbis) { var wertMARKERaktuell = stringMARKERgesamt.slice(wertDURCHLAUF-1, wertDURCHLAUF); wertMARKERaktuell = parseFloat(wertMARKERaktuell); WertePruefen(wertMARKERaktuell, wertDURCHLAUF); wertDURCHLAUF++; } } else { log ("Fehler beim Einlesen der Daten."); } } ! // Werte überprüfen und anpassen: function WertePruefen (MarkerWERT, MarkerNR) { if (MarkerWERT === 1) { MarkerWERT = true; } else if (MarkerWERT === 0) { MarkerWERT = false; } else if (MarkerWERT === true || MarkerWERT === false) { MarkerWERT = MarkerWERT; } else { log ("Marker-Wert fehlerhaft = " + MarkerWERT); } var idMARKERaktuell; switch (MarkerNR) { case 1: idMARKERaktuell = "javascript.0." + idMarker1; // Marker 01 ccuMarker = "hm-rega.0.1239"/*LMAir1_Marker01*/; break; case 2: idMARKERaktuell = "javascript.0." + idMarker2; // Marker 02 ccuMarker = "hm-rega.0.1242"/*LMAir1_Marker02*/; break; case 3: idMARKERaktuell = "javascript.0." + idMarker3; // Marker 03 ccuMarker = "hm-rega.0.1248"/*LMAir1_Marker03*/; break; case 4: idMARKERaktuell = "javascript.0." + idMarker4; // Marker 04 ccuMarker = "hm-rega.0.1243"/*LMAir1_Marker04*/; break; case 5: idMARKERaktuell = "javascript.0." + idMarker5; // Marker 05 ccuMarker = "hm-rega.0.1244"/*LMAir1_Marker05*/; break; case 6: idMARKERaktuell = "javascript.0." + idMarker6; // Marker 06 ccuMarker = "hm-rega.0.1245"/*LMAir1_Marker06*/; break; case 7: idMARKERaktuell = "javascript.0." + idMarker7; // Marker 07 ccuMarker = "hm-rega.0.1246"/*LMAir1_Marker07*/; break; case 8: idMARKERaktuell = "javascript.0." + idMarker8; // Marker 08 ccuMarker = "hm-rega.0.1247"/*LMAir1_Marker08*/; break; case 9: idMARKERaktuell = "javascript.0." + idMarker9; // Marker 09 ccuMarker = "hm-rega.0.1249"/*LMAir1_Marker09*/; break; case 10: idMARKERaktuell = "javascript.0." + idMarker10; // Marker 10 ccuMarker = "hm-rega.0.1250"/*LMAir1_Marker10*/; break; case 11: idMARKERaktuell = "javascript.0." + idMarker11; // Marker 11 ccuMarker = "hm-rega.0.1251"/*LMAir1_Marker11*/; break; case 12: idMARKERaktuell = "javascript.0." + idMarker12; // Marker 12 ccuMarker = "hm-rega.0.1252"/*LMAir1_Marker12*/; break; case 13: idMARKERaktuell = "javascript.0." + idMarker13; // Marker 13 ccuMarker = "hm-rega.0.1255"/*LMAir1_Marker13*/; break; default: log ("fehlerhafter Marker"); break; } if (idMARKERaktuell !== null) { if (getState(idMARKERaktuell).val !== MarkerWERT) setState(idMARKERaktuell, MarkerWERT); if (ccuMarker !== "") { if (getState(ccuMarker).val !== MarkerWERT) setState(ccuMarker, MarkerWERT); } } else { log ("Markerpfad fehlerhaft"); } } ! // Abfrage Datenpunkte // ----------------------------------------------------------------------------- on({id: "javascript.0." + idMarker1, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1239"/LMAir1_Marker01/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 1); }); on({id: "javascript.0." + idMarker2, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1242"/LMAir1_Marker02/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 2); }); on({id: "javascript.0." + idMarker3, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1248"/LMAir1_Marker03/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 3); }); on({id: "javascript.0." + idMarker4, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1243"/LMAir1_Marker04/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 4); }); on({id: "javascript.0." + idMarker5, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1244"/LMAir1_Marker05/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 5); }); on({id: "javascript.0." + idMarker6, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1245"/LMAir1_Marker06/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 6); }); on({id: "javascript.0." + idMarker7, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1246"/LMAir1_Marker07/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 7); }); on({id: "javascript.0." + idMarker8, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1247"/LMAir1_Marker08/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 8); }); on({id: "javascript.0." + idMarker9, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1249"/LMAir1_Marker09/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 9); }); on({id: "javascript.0." + idMarker10, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1250"/LMAir1_Marker10/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 10); }); on({id: "javascript.0." + idMarker11, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1251"/LMAir1_Marker11/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 11); }); on({id: "javascript.0." + idMarker12, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1252"/LMAir1_Marker12/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 12); }); on({id: "javascript.0." + idMarker13, change:'any'}, function (dp) { MarkerWERT = dp.state.val; ccuMarker = "hm-rega.0.1255"/LMAir1_Marker13/; if (getState(ccuMarker).val !== MarkerWERT) WertePruefen(MarkerWERT, 13); }); ! // Start und Intervall: // -------------------------------------------------------------------------- setTimeout(DatenAuslesen, 1000); // Beim Skriptstart die Werte auslesen schedule('*/1 * * * *', DatenAuslesen); // alle 1 Minuten ! // Button-Aktivierung: on({id: "javascript.0." + idButton, change:'any'}, function (dp) { DatenAuslesen(); }); ! ````
  • [gelöst] Kann ich Gruppen in Scripten beliebig sortieren?

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    714 Aufrufe
    S
    Super, vielen Dank dafür. Gruß Sven
  • Delete me

    Gesperrt Verschoben
    6
    0 Stimmen
    6 Beiträge
    509 Aufrufe
    HomoranH
    Der Sinn eines Userforums ist seine Probleme UND Lösungen zu teilen! Wenn man ein Problem hat und dann auch noch die Lösung gefunden hat, letzteres nicht zu sagen und dann auch noch die Frage zu löschen ist definitiv nicht die feine Art. Schließlich wollen hier alle noch lernen. Gruß rainer
  • Blockly und Zipato RGBW - String ausgeben

    Verschoben
    2
    2
    0 Stimmen
    2 Beiträge
    506 Aufrufe
    P
    Falls es mal jemandem hilft: Ich habe mittlerweise eine Lösung dafür gefunden: [image: 2802_zipato.jpg] Besonderheit bzw. Problem war, das der Parameter "Level" jedes mal wieder mit gesetzt werden muss. Bei Fibaro z.B. setzt sich Level automatisch auf 20, wenn Rot = 20 gesetzt wird. Bei Zipato nicht.
  • Sonnenuntergangs als einschaltzeit Blocky

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    562 Aufrufe
    K
    Hey Paul, was kommisch st heute abend hat es wirklich funktioniert :shock: ich werde es mal die age eobachten und dann nchmal antwort geben ob alles soweit läuft!!! ich danke dir trotzdem recht herzlich für deine große hilfe. und umzu deiner frage zu kommen ja es war in den objekten der richtige reiter und ich konnte die schlaterstellung damit ändern… p.s. die bilder werde ich absofort dann so hochaden kein problem vielen vielen dank nochmal...fürs erstebstimm ;) gruß, Chris
  • Amazon Echo - Update Probleme ?? Node-Red Probleme?

    Verschoben
    44
    0 Stimmen
    44 Beiträge
    4k Aufrufe
    L
    Interesanterweise ist dann trotzdem nicht das update installiert. Ich habe es bereits mehrfach ausprobiert.
  • Blockly Script Hilfe

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    860 Aufrufe
    S
    Eine Frage hab ich noch .Wie kann ich mit Blockley einem Object ID einen anderen Wert zu weisen?
  • Fehler im Log, was dagegen tun?

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    839 Aufrufe
    K
    Hi Bekomme die gleiche Meldung (es funktioniert aber alles). Wie funktioniert das mit dem konvertieren, bekomm das leider nicht hin… z.B. setState("onkyo.0.command","main.subwoofer-temporary-level=UP"); kommt die meldung warn at Object. <anonymous>(script.js.Onkyo:6:2) warn Wrong type of onkyo.0.command: "string". Please fix, while deprecated and will not work in next versions.</anonymous> Gruß edit Hat sich erledigt. Für die Nachwelt: statt den onkyo adapter lieber onkyo-vis adapter nutzen. Wie der installiert wird steht hier viewtopic.php?f=20&t=2316&hilit=onkyo+vis#p22772 Der Befehl musste danach so aussehen setState("onkyo-vis.0.RAW","SWLUP");
  • Hilfe zu: aus HEX String 0 / 1 finden und Position ermitteln

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    366 Aufrufe
    J
    Auf jeden Fall hilft das weiter. Super vielen Dank dafür !!!!
  • Adapterabsturz bei Fehlerhaftem Aufruf

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    543 Aufrufe
    Mr. BurnsM
    Danke für den Hinweis. Adapter wurde upgedatet. Von V3.6.4 auf V3.7.0. Das Script hab ich auch neu erstellt. Den ioBroker aus dem Terminal neu gestartet. Der Fehler ist geblieben. Außerdem ist mir aufgefallen, das beim Neustart folgendes im Log steht: ` > admin.0 2018-07-27 14:37:52.635 error setObject id missing!! web.0 2018-07-27 14:37:50.870 error setObject id missing!! ` Hatte gelesen, das dies ignoriert werden könnte, da bereits gefixt. Ist dem so? Oder spricht dies noch für andere Probleme? Gruß Thomas
  • Hue Bewegungsmelder und Sonos

    Verschoben
    7
    1
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    K
    Habs so gemacht: [image: 8132_screenshot__8_.png] Eine Frage hätte ich nur noch, der Bewegungsmelder schaltet das Licht unmittelbar nach der Bewegung ein… aber bis die Sonos Box startet dauert es ca. 20 sek, jemand ne Idee woran es liegen könnte ? kai
  • [gelöst] Eigenschaft von Datenpunkt per Script bearbeiten

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    N
    @paul53: Ersetze bitte noch im Betreff des ersten Beitrags [HILFE] durch [gelöst]. ` Hatte ich vor. Dazu muss ich nur erstmal an den Rechner… Gesendet von meinem SM-T820 mit Tapatalk
  • Skript für Türklingel aber GPIO verzögern

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    591 Aufrufe
    M
    Danke, sehr….. hatte es gesucht..... leider nicht gefunden Gesendet von iPhone mit Tapatalk
  • [workaround] sendTo in Blockly

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    766 Aufrufe
    N
    Ja, so geht's auch. Aber ich mag's halt kompliziert und umständlich. ;-) Aber dann halt auf die klassische Weise. B-) Gesendet von meinem SM-T820 mit Tapatalk
  • Blockly Script für Benachrichtigung

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    814 Aufrufe
    K
    Wenn ich dich richtig verstanden habe, würde ich es wie folgt machen. Die Temperauter des Außentermomethers als Trigger. Dann wird geprüft ob die Außentemp kleiner ist, als eine der drei Innentemps. Wenn ja, bekommst du eine Nachricht
  • [geloest] mit Blockly text in Datenpunkt setzen

    Verschoben
    4
    3
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    K
    Hallo, bin durch das fast gleich Problem auf diesen Beitrag gestoßen. Ich benötige auch einen Datenpunkt , den ich dann über Blockly beschreiben kann, wenn ein Eingang TRUE wird. Es soll ein Text sein z.B. "Rot". Allerdings weiß ich nicht genau, wie ich den Datenpunkt anlegen muss.
  • [gelöst] [Blockly] Rollosteuerung bei Hitze

    Verschoben
    4
    3
    0 Stimmen
    4 Beiträge
    711 Aufrufe
    M
    Für alle Interessierten, ich habe es nun wie folgt am Laufen: var timeout, timeout2, timeout3, timeout4, timeout5, timeout6, timeout7; // Erzeuge Zustand Hitze Nord-NordOst createState("javascript.0.Hitze_N-NO", function () { schedule("55 6 * * *", function () { if (getState("yr.0.forecast.day0.temperature_max").val >= 21 && (getState("yr.0.forecast.day0.text").val == 'Schönwetter' || getState("yr.0.forecast.day0.text").val == 'Klarer Himmel') || getState("yr.0.forecast.day0.temperature_max").val >= 25 && (getState("yr.0.forecast.day0.text").val != 'Regenschauer' || getState("yr.0.forecast.day0.text").val != 'Gewitter')) { setState("javascript.0.Hitze_N-NO"/*javascript.0.Hitze_N-NO*/, true); } else { setState("javascript.0.Hitze_N-NO"/*javascript.0.Hitze_N-NO*/, false); } }); }); // Wohnzimmer & Esszimmer_links schedule("0 7 * * *", function () { if (getState("javascript.0.Hitze_N-NO").val == true) { setState("hm-rpc.1.001118A98B3906.4.LEVEL"/*Rollo_WZ:4.LEVEL*/, 25); setState("hm-rpc.1.001118A98B382F.4.LEVEL"/*Rollo_EZ_links:4.LEVEL*/, 25); timeout = setTimeout(function () { if (getState("hm-rpc.1.001118A98B3906.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3906.4.LEVEL"/*Rollo_WZ:4.LEVEL*/, 25); } if (getState("hm-rpc.1.001118A98B382F.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B382F.4.LEVEL"/*Rollo_EZ_links:4.LEVEL*/, 25); } }, 60000); } }); schedule("0 11 * * *", function () { if (getState("javascript.0.Hitze_N-NO").val == true) { setState("hm-rpc.1.001118A98B3906.4.LEVEL"/*Rollo_WZ:4.LEVEL*/, 100); setState("hm-rpc.1.001118A98B382F.4.LEVEL"/*Rollo_EZ_links:4.LEVEL*/, 100); timeout2 = setTimeout(function () { if (getState("hm-rpc.1.001118A98B3906.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3906.4.LEVEL"/*Rollo_WZ:4.LEVEL*/, 100); } if (getState("hm-rpc.1.001118A98B382F.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B382F.4.LEVEL"/*Rollo_EZ_links:4.LEVEL*/, 100); } }, 60000); } }); // Erzeuge Zustand Hitze_Ost-SüdOst createState("javascript.0.Hitze_O-SO", function () { schedule("55 7 * * *", function () { if (getState("yr.0.forecast.day0.temperature_max").val >= 21 && (getState("yr.0.forecast.day0.text").val == 'Schönwetter' || getState("yr.0.forecast.day0.text").val == 'Klarer Himmel') || getState("yr.0.forecast.day0.temperature_max").val >= 25 && (getState("yr.0.forecast.day0.text").val != 'Regenschauer' || getState("yr.0.forecast.day0.text").val != 'Gewitter')) { setState("javascript.0.Hitze_O-SO"/*javascript.0.Hitze_O-SO*/, true); } else { setState("javascript.0.Hitze_O-SO"/*javascript.0.Hitze_O-SO*/, false); } }); }); // Esszimmer_rechts & Küche & Yvonne´s Zimmer & Badezimmer schedule("0 8 * * *", function () { if (getState("javascript.0.Hitze_O-SO").val == true) { setState("hm-rpc.1.001118A98B3A5F.4.LEVEL"/*Rollo_EZ_rechts:4.LEVEL*/, 25); setState("hm-rpc.1.001118A98B3947.4.LEVEL"/*Rollo_KUE:4.LEVEL*/, 25); setState("hm-rpc.1.001118A98B390F.4.LEVEL"/*Rollo_YZ:4.LEVEL*/, 25); setState("hm-rpc.1.001118A98B35F7.4.LEVEL"/*Rollo_BZ:4.LEVEL*/, 25); timeout3 = setTimeout(function () { if (getState("hm-rpc.1.001118A98B3A5F.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3A5F.4.LEVEL"/*Rollo_EZ_rechts:4.LEVEL*/, 25); } if (getState("hm-rpc.1.001118A98B3947.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3947.4.LEVEL"/*Rollo_KUE:4.LEVEL*/, 25); } if (getState("hm-rpc.1.001118A98B390F.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B390F.4.LEVEL"/*Rollo_YZ:4.LEVEL*/, 25); } if (getState("hm-rpc.1.001118A98B35F7.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B35F7.4.LEVEL"/*Rollo_BZ:4.LEVEL*/, 25); } }, 60000); } }); schedule("10 15 * * *", function () { if (getState("javascript.0.Hitze_O-SO").val == true) { setState("hm-rpc.1.001118A98B3A5F.4.LEVEL"/*Rollo_EZ_rechts:4.LEVEL*/, 100); setState("hm-rpc.1.001118A98B3947.4.LEVEL"/*Rollo_KUE:4.LEVEL*/, 100); setState("hm-rpc.1.001118A98B390F.4.LEVEL"/*Rollo_YZ:4.LEVEL*/, 100); setState("hm-rpc.1.001118A98B35F7.4.LEVEL"/*Rollo_BZ:4.LEVEL*/, 100); timeout4 = setTimeout(function () { if (getState("hm-rpc.1.001118A98B3A5F.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3A5F.4.LEVEL"/*Rollo_EZ_rechts:4.LEVEL*/, 100); } if (getState("hm-rpc.1.001118A98B3947.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3947.4.LEVEL"/*Rollo_KUE:4.LEVEL*/, 100); } if (getState("hm-rpc.1.001118A98B390F.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B390F.4.LEVEL"/*Rollo_YZ:4.LEVEL*/, 100); } if (getState("hm-rpc.1.001118A98B35F7.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B35F7.4.LEVEL"/*Rollo_BZ:4.LEVEL*/, 100); } }, 60000); } }); // Erzeuge Zustand Hitze_Süd-SüdWest createState("javascript.0.Hitze_S-SW", function () { schedule("40 15 * * *", function () { if (getState("yr.0.forecast.day0.temperature_actual").val >= 21 && (getState("yr.0.forecast.day0.text").val == 'Schönwetter' || getState("yr.0.forecast.day0.text").val == 'Klarer Himmel') || getState("yr.0.forecast.day0.temperature_actual").val >= 25 && (getState("yr.0.forecast.day0.text").val != 'Regenschauer' || getState("yr.0.forecast.day0.text").val != 'Gewitter')) { setState("javascript.0.Hitze_S-SW"/*javascript.0.Hitze_S-SW*/, true); } else { setState("javascript.0.Hitze_S-SW"/*javascript.0.Hitze_S-SW*/, false); } }); }); // Büro & HWR schedule("45 15 * * *", function () { if (getState("javascript.0.Hitze_S-SW").val == true) { setState("hm-rpc.1.001118A98B3937.4.LEVEL"/*Rollo_BUE:4.LEVEL*/, 25); setState("hm-rpc.1.001118A98B3868.4.LEVEL"/*Rollo_HWR:4.LEVEL*/, 25); timeout5 = setTimeout(function () { if (getState("hm-rpc.1.001118A98B3937.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3937.4.LEVEL"/*Rollo_BUE:4.LEVEL*/, 25); } if (getState("hm-rpc.1.001118A98B3868.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3868.4.LEVEL"/*Rollo_HWR:4.LEVEL*/, 25); } }, 60000); } }); schedule("10 20 * * *", function () { if (getState("javascript.0.Hitze_S-SW").val == true) { setState("hm-rpc.1.001118A98B3937.4.LEVEL"/*Rollo_BUE:4.LEVEL*/, 100); setState("hm-rpc.1.001118A98B3868.4.LEVEL"/*Rollo_HWR:4.LEVEL*/, 100); timeout6 = setTimeout(function () { if (getState("hm-rpc.1.001118A98B3937.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3937.4.LEVEL"/*Rollo_BUE:4.LEVEL*/, 100); } if (getState("hm-rpc.1.001118A98B3868.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B3868.4.LEVEL"/*Rollo_HWR:4.LEVEL*/, 100); } }, 60000); } }); // Erzeuge Zustand Hitze_West-NordWest createState("javascript.0.Hitze_W-NW", function () { schedule("40 17 * * *", function () { if (getState("yr.0.forecast.day0.temperature_actual").val >= 21 && (getState("yr.0.forecast.day0.text").val == 'Schönwetter' || getState("yr.0.forecast.day0.text").val == 'Klarer Himmel') || getState("yr.0.forecast.day0.temperature_actual").val >= 25 && (getState("yr.0.forecast.day0.text").val != 'Regenschauer' || getState("yr.0.forecast.day0.text").val != 'Gewitter')) { setState("javascript.0.Hitze_W-NW"/*javascript.0.Hitze_W-NW*/, true); } else { setState("javascript.0.Hitze_W-NW"/*javascript.0.Hitze_W-NW*/, false); } }); }); // WC, Kinderzimmer & Schlafzimmer schedule("45 17 * * *", function () { if (getState("javascript.0.Hitze_W-NW").val == true) { setState("hm-rpc.1.001118A98B35E3.4.LEVEL"/*Rollo_KZ:4.LEVEL*/, 25); setState("hm-rpc.1.001118A98B38B1.4.LEVEL"/*Rollo_SZ:4.LEVEL*/, 25); setState("hm-rpc.1.001118A98B37E3.4.LEVEL"/*Rollo_WC:4.LEVEL*/, 25); timeout7 = setTimeout(function () { if (getState("hm-rpc.1.001118A98B35E3.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B35E3.4.LEVEL"/*Rollo_KZ:4.LEVEL*/, 25); } if (getState("hm-rpc.1.001118A98B38B1.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B38B1.4.LEVEL"/*Rollo_SZ:4.LEVEL*/, 25); } if (getState("hm-rpc.1.001118A98B37E3.0.UNREACH").val == true) { setState("hm-rpc.1.001118A98B37E3.4.LEVEL"/*Rollo_WC:4.LEVEL*/, 25); } }, 60000); } });
  • *gelöst* Timeout verwenden

    Verschoben
    9
    1
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    surfer09S
    Danke Paul, dann werde ich deine Variante verbauen! :)
  • [gelöst] Nach Scripte Import, funktionieren keine Scripte

    Verschoben
    4
    2
    0 Stimmen
    4 Beiträge
    430 Aufrufe
    S
    Ach Mensch Jungs ich bin doch blöde, stimmt ihr habt recht. Hab zwar die CCU2 wiederhergestellt, aber hier will er ja auch die Hue Lampen zurückgreifen und den Adapter hab ich in dem neuen ioBroker Server noch gar nicht konfiguriert. Man man :oops: :oops: :oops: Danke Problem gelöst :lol:
  • If-Bedienungen…

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    Y
    Hey, danke nein kannte ich nicht. Ich muss nochmal nachschauen. Dein Skript funktioniert leider auch nicht, er gibt den bei den Werte Kontakt1, Kontakt2= false den Wert für g_Verschluss_Keller true zurück. Danke für die Hilfe, die Tipps haben mich auf jeden Fall weiter gebracht

740

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge