Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. AquaGuard

    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

    AquaGuard

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

      Hallo,

      ich wollte Euch mal mein Projekt "AquaGuard" vorstellen, welches ich gerne zum ioBroker transferieren möchte. Derzeit läuft es über blynkk + Webserver.

      Hintergrund (aktueller Stand):

      Ich habe einen Arduino im Einsatz, welcher per I2C mehrere DS18B20 ausliest und das Licht der Aquarien steuert. Die Messwerte werden an blynkk und den Webserver gesendet. Blynkk nutze ich zur Remotekontrolle per Smartphone (Terminal). Dabei habe ich einige Spielereien implementiert 😉

      • rgb Gewittersimulation (rgb1 -> Gewitter an; rgb0 -> Gewitter aus)
      alarm Zurücksetzen des Alarmstatus
      
      sundown Anzeige Zeitpunkt des Sonnenuntergangs
      
      sunup Anzeige Zeitpunkt des Sonnenaufgangs
      
      dht Anzeige der Luftfeuchte und Temperatur
      
      over LED-Overtime (Wie viel Stunden mehr soll das Aquarium nach Sonnenuntergang zusätzlich leuchten? over2 -> Overtime auf 2 Stunden zusätzlich stellen
      
      now Anzeige aktuelle Zeit
      
      date Anzeige aktuelles Datum
      
      status Sendet eine Statusmail
      
      send Sendet alle Temperaturwerte ans Webserver 
      

      Blynkk

      ! 3116_blynkk.jpg

      WebServer

      ! 3116_aqua1.jpg 3116_aqua2.jpg

      Ziel:

      Eliminierung Webserver + blynkk und Anzeige/Eingabe aller möglichen Daten in VIS von ioBroker.

      Umsetzung:

      Das Senden der Daten per Arduino an ioBroker per simpleApi habe ich in folgender Form realisiert. Hier der Auszug zum Senden der Daten an ioBroker vom Arduino:

      ! // send Data an ioBroker void Send_Data_ioBroker(String data) { // Aufruf ioBroker-Server Serial.println("Daten an ioBroker senden - Verbindung zum Server..."); if (clientTCP.connect(ServerioBroker, 8087) && data > "") { Serial.println("mit ioBroker verbunden..."); clientTCP.println("GET /set/javascript.0.AquaGuard.Aqua.1.ACTUAL_TEMPERTURE?value=" + data + " HTTP/1.1"); // http://192.168.x.xxx:8087/set/javascript.0.AquaGuard.Aqua.1.ACTUAL_TEMPERTURE?value=12.34 Serial.println("GET /set/javascript.0.AquaGuard.Aqua.1.ACTUAL_TEMPERTURE?value=" + data + " HTTP/1.1"); clientTCP.println(); } else { Serial.println("nicht mit ioBroker Server verbunden"); } clientTCP.stop(); } !

      Ebenfalls funktioniert die Anzeige in VIS + Diagramm.

      ! 3116_vis.jpg 3116_flot.jpg

      Nun hatte ich im Arduino per blynkk die Logik implementiert, das ich informiert werde, wenn die Temperatur außerhalb eines Toleranzbereiches sich befindet. Dabei ist bereits folgendes Skript entstanden:

      ! ```
      instanz = 'javascript.0.'; ! var cronStr = "*/9 * * * *"; var logging = true; var aqualiste = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15']; ! function check_Aqua() { var name; var text; var Optin; for(var i = 0; i<aqualiste.length; i++)/{/schleife/für/jedes/aquarium/lt./liste/name="instanz" +/'aquaguard.aqua.'/aqualiste[i];/var/idalarm="name" '.alarm';/if/(getstate(idalarm))/setstate(idalarm,false);/text="Temperatur-Alarm Min/Max wurde erkannt!!" ;/(sens_hasalarm(name,/aqualiste[i]))/setstate(idalarm,true);/optin="instanz" 'optin.dienste.aquaguard.temperture.push';/meldung_push(/'aquarium/'/aqualiste[i]/-/text,/'iobroker/alarm/aquaguard/aqualiste[i],/false,/);/wert:/getstate(name/'.actual_temperture').val;/event('<b="">Aquarium ' + aqualiste[i] + ': ' + text + ''); if (logging) log('Aquarium ' + aqualiste[i] + ' - ' + text); } // if (Sens_hasAlarm(name, aqualiste[i])) { else { if (logging) log('Aquarium ' + aqualiste[i] + ' - kein ' + text); } } // if (getState(idAlarm)) { } // for(var i = 0; i<aqualiste.length; i++)/{/schleife/für/jedes/aquarium/lt./liste/}/temperatur-sensor/prüfen/function/sens_hasalarm(name,/nummer)/var/value="getState(name" +/'.actual_temperture').val;/if/(getstate(name/'.min_temperture')/&&/getstate(name/'.max_temperture'))/mintemp="getState(name" '.min_temperture').val;/maxtemp="getState(name" '.max_temperture').val;/(logging)/log('min-temperatur/aqua/'/nummer/ist/mintemp);/log('max-temperatur/maxtemp);/check/low/alarm/(value/<="MinTemp)" return/true;/high="">= MaxTemp) return true; } else { log('Datenpunkt ' + name + '.MIN_TEMPERTURE nicht vorhanden'); } // no alarm return false; } ! function dpAnlegen() { // Datenpunkte anhand der Aqua-Liste anlegen lassen for(var i = 0; i<aqualiste.length; i++)/{/createstate('aquaguard.aqua.'/+/aqualiste[i]/'.alarm',/false,/{read:/true,/write:/type:/'boolean',/name:/'alarm/aquarium/'/aqualiste[i],/desc:/'true="Ein," false="Aus'," def:/states:/'false:aus;/true:ein'});/'.actual_temperture',/23,/'number',/'temperatur/aqua/'temperatur',/unit:'°c',/23});/'.min_temperture',/18,/'min./temperatur/temperatur',/18});/'.max_temperture',/26,/'max./26});/log('aquaguard.aqua.'/'.alarm/wurde/angelegt');/}/createstate('vis.aquaguard.zeigegraphnr',/0,/'aquaguard/vis',/'auswahl/auagraph/zur/anzeige/in/read:/true/});/createstate('optin.dienste.aquaguard.temperture.push',/'optin/aquaguard/niedrige/höhere/tempertur/melden',/'soll/eine/zu/gemeldet/werden?',/dpanlegen();/datenpunkte/anlegen/regelmässige/wiederholungen/-----------------------------------------------------------------------------/schedule(cronstr,/check_aqua);/main/function/main()/check_aqua();/start/skript:/settimeout(main,/500);/<e=""></aqualiste.length;></aqualiste.length;></aqualiste.length;>
      ! Funktioniert ebenfalls. Nicht elegant aber die Funktion ist entscheidend 😄
      ! ~~[b]~~Folgende Punkte sind noch in Umsetzung (würde mich dabei über Hinweise freuen):[/b]
      ! ~~~~* - VIS Eingabemaske zum Update der Daten für Wasserwechsel pro Aquarium (Idee: pro Aquarium erstelle ich ein zusätzliches Boolean "Water", welches historisiert wird. Dabei soll nur eine Veränderung des Wertes auf true historisiert werden. Geht sowas überhaupt? Habt Ihr eventuell eine ähnliche Art realisiert?)

      - VIS Anzeige der letzten Werte/Ereignisse in einer Tabelle aller Aquarien (siehe Screenshots Webserver)
      

      ! ~~[b]~~Zusatzfrage:[/b] ist sowas überhaupt umsetzbar mit ioBroker (Ablösung Webserver) oder sollte ich lieber mit iframes arbeiten?
      ! Dies sollte erstmal als Zwischenstand dienen. Ich werde weitere Schritte/Erfolge hier posten.
      ! Danke für euer Interesse und eventuell auch Unterstützung.
      ! mfg
      ! Falk[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

      1 Reply Last reply Reply Quote 0
      • D
        dondaik last edited by

        sehr schönes projekt !!!

        sind die 15 seewasser(?) aquarien daheim ? …

        1 Reply Last reply Reply Quote 0
        • S
          schittl last edited by

          @dondaik:

          sind die 15 seewasser(?) aquarien daheim ? … `
          Ja daheim, aber alle "nur" Süßwasser 😉

          1 Reply Last reply Reply Quote 0
          • B
            Bradock last edited by

            Respekt! Nicht nur für die Arbeit, sondern auch wegen 15 Aquarien.

            1 Reply Last reply Reply Quote 0
            • D
              dondaik last edited by

              🙂 sauber, erinnert mich an meine zeit der barsche und diskusfische …

              1 Reply Last reply Reply Quote 0
              • S
                schittl last edited by

                @dondaik:

                🙂 sauber, erinnert mich an meine zeit der barsche und diskusfische … ` In meinen Becken schwimmen/krabbeln aber nur Wirbellose 😄

                @Bradock:

                Respekt! Nicht nur für die Arbeit, sondern auch wegen 15 Aquarien. ` Danke Dir, habe es aber auch so weitestgehend automatisiert. Aquaguard als Kontrolle und Pumpen + Schläuche, damit man keine Eimer schleppen muss 😄

                Hat jemand vielleicht Ideen/Vorschläge zur Umsetzung so eines "Planers" für Wasserwechsel oder ist dafür ioBroker eher ungeeignet?

                1 Reply Last reply Reply Quote 0
                • D
                  dondaik last edited by

                  ich glaube den planer würde ich "frei" schreiben und dann die daten zur steuerung schieben, da kommt bei elv ein neuer usb-stick, ggf ist da was mit machbar

                  1 Reply Last reply Reply Quote 0
                  • S
                    schittl last edited by

                    @dondaik:

                    ich glaube den planer würde ich "frei" schreiben und dann die daten zur steuerung schieben, da kommt bei elv ein neuer usb-stick, ggf ist da was mit machbar ` Wie meinst Du "frei" schreiben? Besser belassen auf dem Webserver? Welchen Stick meinst Du von ELV?

                    1 Reply Last reply Reply Quote 0
                    • D
                      dondaik last edited by

                      diesen https://files.elv.com/Assets/Produkte/1 … usb_um.pdf - mehr in der nächsten ELV

                      mit frei schreibe meine ich das ich da da selber was zusammenprogrammieren würde .. oder wenn da schon was ist - erst einmal belassen.

                      1 Reply Last reply Reply Quote 0
                      • S
                        schittl last edited by

                        @dondaik:

                        diesen https://files.elv.com/Assets/Produkte/1 … usb_um.pdf - mehr in der nächsten ELV ` Link funktioniert leider nicht:(

                        1 Reply Last reply Reply Quote 0
                        • D
                          dondaik last edited by

                          besser ?

                          https://www.elv.de/controller.aspx?cid= … il2=825583

                          1 Reply Last reply Reply Quote 0
                          • S
                            schittl last edited by schittl

                            @dondaik:

                            besser ?

                            https://www.elv.de/controller.aspx?cid= … il2=825583 ` jetzt ja 🙂

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            483
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            2061
                            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