Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Mähroboter und Regen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Mähroboter und Regen

    This topic has been deleted. Only users with topic management privileges can see it.
    • miwi
      miwi last edited by

      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

      1 Reply Last reply Reply Quote 0
      • lobomau
        lobomau last edited by

        @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]
        
        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        574
        Online

        31.7k
        Users

        79.9k
        Topics

        1.3m
        Posts

        2
        2
        362
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo