NEWS
Mähroboter und Regen
-
Hallo zusammen,
nachdem die Übernahme eines Wertes aus iobroker in eine CCU SysVar aus irgendeinem Grund nicht immer funktioniert möchte ich nun meinen Mähroboter über eine ioBroker Script bedienen.
Hierzu möchte ich lediglich 2 verschiedene URL-Befehle für "EOD" (Arbeitsende bei Regen) oder "Auto" bei zurückschalten in Normalbetrieb, senden.
Dies soll Mo-Sa in der Zeit zwischen 8:30 und 15:00 Uhr erfolgen.
DIe Wetterdaten kommen aus dem yr-Adapter.
Leider finde ich in Blockly nicht das passende Bauteil für meine Steuerung.
Was ich vorhabe sieht so aus (CCU Logik):
Wenn "Wert in yr" enthält "Regen" und Zeit im Bereich "Mo-Sa 8:30 bis 15:00" dann sende "http://192.xxx.yyy.zzz/xml?cmd=mode&mode=eod";
sonst sende "http://192.168.178.43/xml?cmd=mode&mode=auto";
Hierbei sollte der String nur bei Änderung des Wert in yr gesendet werden und morgens um 8:30 Uhr unabhängig ob es eine Aktualisierung des Wertes gab den jeweiligen String neu Senden. Hintergrund ist das der Mäher um 9:00 Uhr starten soll und um 8:30 erfahren soll ob er arbeiten soll oder nicht.
Frage wie sage ich in Blockly das ich einen Teil eines Wert aus einem Adaptertext nutzen möchte. yr nutzt z.Bsp. "Heftiger Regen","Leichter Regen" oder "Regenschauer" - ich würde aber gerne auf das Textstück "Regen" prüfen wollen.
Danke für die Hilfe,
miwi
-
Frage wie sage ich in Blockly das ich einen Teil eines Wert aus einem Adaptertext nutzen möchte. yr nutzt z.Bsp. "Heftiger Regen","Leichter Regen" oder "Regenschauer" - ich würde aber gerne auf das Textstück "Regen" prüfen wollen.
Danke für die Hilfe,
miwi `
Ich kann mir vorstellen, dass man das iCal-Script einfach dafür anpassen kann. Nach den drei Wörtern suchen, anstatt ical yr, 0 für heute, schedule auf 8:30, sayit rausnehmen. Dann müsste man doch eigentlich ein true/false hinkriegen für "Muellwarnung" bzw. angepasst "Regen".`/* Kalenderevent in der Zukunft suchen sucht im iCal Adapter nach events, die noch kommen viewtopic.php?f=21&t=3761&sid=4319378b32a0ce096bbbbfc0ebd859ce#p34975 20.09.2016 erstellt von pix 13.11.2016 angepasst für Sven */ // User Anpassungen var aSuchstringLiteral = ['Wertstofftonne', 'Altpapier', 'Hausmuell']; // Suchbegriff var aSuchstring = ['Wertstofftonne', 'Altpapier', 'Hausmuell']; var stichtag = 1; // 0 heute; 1 morgen; 2 übermorgen; 3 In 3 Tagen var idTabelle = 'ical.1.data.table'; // Instanz eintragen var logging = false; // debug Log ein/ausschalten // Ende User Anpassungen for (var j = 0; j < aSuchstring.length; j++) { createState('Muellwarnung.' + aSuchstring[j], false, { type: 'boolean', name: aSuchstringLiteral[j] + ' wird morgen abgeholt', desc: aSuchstringLiteral[j] + ' wird morgen abgeholt (Boolean)', def: false }); var idEventState = 'Muellwarnung.' + aSuchstring[j]; log (idEventState); setState(idEventState, false); } var tage = ['Heute','Morgen','Übermorgen','In 3 Tagen']; // dafür relative Datumsangabe in iCal-Adapter einschalten und ggf. übersetzen function datum(x) { var jetzt = new Date(); if (logging) log('Jetztzeit: ' + jetzt); //var zeit = new Date(jetzt.getTime() + x * 24 * 60 * 60 * 1000); // es werden genau x Tage, als x * 24 Stunden zugezählt --> nicht gut var zeit = new Date (jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate() + x); // in drei Tagen um Mitternacht if (logging) log('Zielzeit: ' + zeit); var jahr = zeit.getFullYear(); var monat = (zeit.getMonth()+1 < 10) ? '0' + (zeit.getMonth()+1) : zeit.getMonth()+1; var tag = (zeit.getDate() < 10) ? '0' + zeit.getDate() : zeit.getDate(); return (tag + '.' + monat + '.' + jahr); } function pruefeKalender() { var kalender = getState(idTabelle).val; var tag = datum(parseInt(stichtag,10)); if (logging) log(tag); try{ var ereignisse = JSON.stringify(kalender, null, 2); // Ausgabe als String if (logging) log(ereignisse); for (var j = 0; j < aSuchstring.length; j++) { var idEventState = 'Muellwarnung.' + aSuchstring[j]; for(var i = 0; i <kalender.length; 20/i++)/{/alle/events/durchgehen/if/(/(kalender[i].date.indexof(tag)/!="-1)" ||/(kalender[i].date.indexof(tage[stichtag])/)/string/datum/oder/relatives/(nicht/nicht)/gefunden,/also/gefunden/var/termin="kalender[i].event;" (termin.indexof(asuchstringliteral[j])/log('treffer:/'/+/tage[stichtag]/asuchstringliteral[j]);/hier/wird/später/vielleicht/stichtag_array/verwendet/setstate(ideventstate,/true);/break;/}/else/false);/catch/(fehler_try)/log('fehler/beim/kalenderevents/einlesen/fehler_try,/'error');/schedule("30/*/*",/function(){/bei/mehreren/müllskripts/den/ersten/wert/verändern/(minuten)/for/(var/j="0;" </asuchstring.length;/j++)/ideventstate="Muellwarnung." asuchstring[j];/event="getState(idEventState).val;" (event)/ansage="aSuchstringLiteral[j]" mülltonne/morgen/abgeholt./bitte/stell/die/tonne/an/straße!';/kann/sayit/push/gesetzt/werden/setstate("sayit.0.tts.text",/"de-de_cloud_female;75;"/ansage);/});/aktualisierung/on/({id:/idtabelle,/change:/'any'},/function(data)/pruefekalender();/1min/nach/mitternacht/schedule("1/pruefekalender);/skriptstart/pruefekalender();<e=""></kalender.length;>`[/i][/i][/i]