Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Mähroboter und Regen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Mähroboter und Regen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
2 Beiträge 2 Kommentatoren 411 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • miwiM Offline
    miwiM Offline
    miwi
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • lobomauL Offline
      lobomauL Offline
      lobomau
      schrieb am zuletzt editiert von
      #2

      @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]
      

      Host: NUC8i3 mit Proxmox:

      • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
      • Slave: Pi4
      1 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      951

      Online

      32.4k

      Benutzer

      81.5k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe