Beiträge von cruunnerr

    Bildschirmfoto_2018_10_01_um_12_05_33.png

    the agents matrix


    Gerechnet bräuchtest du einen 10kOhm und einen 33kOhm Widerstand. Keinesfalls tiefer gehen, sonst wird dem Akku zu viel Strom entwendet.

    Geht mit jedem ESP, der genug Flashspeicher für ESPEasy hat. Also wenn, ESP-01, dann die schwarzen


    EDIT:

    Nochmal zur Feinjustierung...

    Am Besten Multimeter an den 10kOhm hängen, parallel zum GPIO_2. Wert Vom Multimeter dann mit dem Wert aus ESP_Easy vergleichen und den errechneten Wert in der IndexID anpassen. Darauf achten, dass am GPIO_2 niemals mehr als 3,3V anliegen!

    Das machst du aber alles am Schluss. Zuerst mal ohne ESP-01 und nur mit Multimeter messen. Bei 15V Eingang müssten 3,3V am 10kOhm abfallen.

    Bei 12V Batteriespannung müssten es ca. 2,79V am 10kOhm Widerstand sein.

    Spannungsteiler -> ESP8266 -> ESPEasy

    Fertig ^^

    Also Spannungsteiler um dem ESP8266 (z.B. Wemos D1 mini) um nicht mehr als 3,3V auf den Analogen Eingang zu schicken.

    In ESPEasy den Analogen Wert ermitteln und per MQTT an ioBroker o.ä. schicken.

    Vorher muss du natürlich mit nem Multimeter den Spannungsteiler eichen. Also meinetwegen einen 10kOhm Festwiderstand und einen 100kOhm Poti.

    Maximale Batteriespannung (z.B. 15V) am Spannungsteiler anlegen und am Poti drehen, bis du am 10kOhm Festwiderstand 3,3V misst (maximale Spannung für den Analogen Eingang).

    Verbindung vom 10kOhm an den Analogen Eingang herstellen und in ESPEasy dann Analog Read auswählen. Bei 3,3V (bzw. 15V Eingangsspannung) wird er dir ca. 1024 als Wert anzeigen. Also musst du noch eine IndexID angeben. Da kommt

    %value%*0.0146484375

    rein, da 15/1024 = 0.0146484375.

    Dann zeigt er dir auch 15 an, statt 1024. Bitte nachher dann nochmal mit Multimeter parallel nachmessen und ggf. den errechneten Wert von 0.014.... nach oben oder unten anpassen in kleinen Schritten.

    Falls das nicht verständlich war, kann ich auch noch ein Schaltbild schicken. :)

    Müsste es so nicht auch klappen? :

    Sonoff 1 = Schalter und Lampe angeschlossen

    Sonoff 2 = Schalter

    Sonoff 3 = Schalter

    Sonoff 4 = Schalter

    Dann einzelnen Trigger auf jeden Schalter. Egal ob True oder False...Einfach immer Lampe umschalten.

    Für Rückmeldung ob die Lampe an oder aus ist, einfach nach dem Umschalten nochmal prüfen ob Wahr oder Falsch.

    Falls es jemanden interessiert: ^^

    Hab einen Raspberry Pi mit Ultraschallsensor einfach an den Öltank "installiert"

    Dann hab ich einige Skripte zusammengeschrieben aus Funden im Internet und selbst ergänzt.

    https://github.com/cruunnerr/OilTank-Calculator


    Die tank.py Datei misst den Ölstand und macht dann:


    1. Schreibt CSV Datei

    2. Lädt CSV Datei auf einen FTP-Server (z.B. NAS oder direkt ioBroker-Server)

    3. Schreibt Wert in eine MySQL Datenbank

    4. Erstellt Object und schreibt Wert an einen MQTT Server (ioBroker)


    #### Letzteres schickt also direkt nach der Messung den Wert an ioBroker ohne irgendwelche Zwischenschritte. :) ####


    Die app.js liest noch zusätzlich die Werte von der MySQL Datenbank und erstellt eine JSON Datei.


    Zusätzlich hatte ich, bevor ich ioBroker kannte, noch eine Visualisierung per PHP Webpage realisiert: https://github.com/cruunnerr/OilTank-Graph-WebPage


    Bin kein guter Programmierer und die Skripte sind durch sehr viel Lesen, recherchieren, kopieren und selbst schreiben entstanden, aber alles läuft zuverlässig seit über 7 Monaten.


    Wie man allerdings sieht, hat die Messung per Ultraschall bei mir eine Toleranz von +/- ca. 80 Liter, was aber verkraftbar ist :)


    Bei Fragen helfen ich gerne :)


    Edit:

    Hier das widget als export:

    Code
    [{"tpl":"tplJqplotGauge","data":{"oid":"mqtt.0.Oeltank.Oelstand","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":true,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","showTickLabels":true,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"timestamp","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"bottom","lc-position-horz":"right","lc-offset-vert":"-4","lc-offset-horz":"-225","lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"intervalColors":"red;yellow;green","intervals":"500;1300;3200","intervalInnerRadius":"26","intervalOuterRadius":"65","min":"0","max":"3200","ringColor":"grey","ringWidth":"7","g_shadow":true,"tickPadding":"0","label":"Ölstand","padding":"0","lc-oid":"mqtt.0.Oeltank.Oelstand"},"style":{"left":"628px","top":"385px","width":"318px","height":"190px"},"widgetSet":"jqplot"}]





    Hallo zusammen,

    wollte euch mal meine Hezungssteuerung auf Blockly-Basis vorstellen. Einfach so, vielleicht hilft es ja dem Ein oder Anderen Anfänger seinen Weg zu finden :)

    Verwendet wird der MAX!-Cube und MAX! Thermostate mit entsprechendem Adapter. Für die Skripte ist das aber eher zweitrangig. Man muss halt seine Objekte anpassen.

    Ich habe mir manuell folgende Objekte erstellt:

    -Schalter Sommermodus

    -Schalter Urlaubsmodus

    So hat man drei verschiedene Szenarien:

    1. Es ist Sommer = Alle Heizkörper bleiben aus
    2. Es ist Winter und man hat keinen Urlaub = Zeitgesteuert
    3. Es ist Winter und man hat Urlaub = Zeitgesteuert (aber länger an, da man zu Hause bleibt)

    Im Erdgeschoss befinden sich Küche, Esszimmer und Wohnzimmer. Schlaf- und Badezimmer sind separat.

    Wenn die Terrassentür in der Küche geöffnet wird, regeln die Thermostate im EG runter. Schließt man die Tür wieder, regeln sie auf den letzten Wert zurück.

    - Wird der Schalter Urlaubsmodus im Winter aktiviert (auf true gesetzt), werden die normalen Skripte während der Zeit deaktiviert.

    - Wird der Schalter Sommermodus auf true gesetzt, werden alle anderen Skripte deaktiviert und die Thermostate runter geregelt.

    - Schaltet man den Sommermodus aus, werden wieder die normalen Skripte aktiviert.

    Normale Skripte sind in dem Fall die, die mit (kein Urlaub) gekennzeichnet sind.

    Natürlich ist dann noch alles im Yahka Adapter eingebunden und ich kann alles mit Siri oder eben manuell in Homekit steuern und aktuelle Temperaturen lesen und die Thermostate hoch- und runter regeln.

    Anbei die Blockly Exporte und Bilder der Skripte. Gerne darf gemeckert, gelobt und verbessert werden. :)

    Der Timeout im Urlaubsmodus-Skript ist übrigens da, damit man nicht den Urlaubsmodus aktiv setzen kann, während der Sommermodus aktiv ist. Dazu muss also erst der Sommermodus deaktiviert werden. Da in Homekit die Schalter zu schnell getriggert wurden, hab ich den kleinen Timeout von 1 Sek, hinzugefügt und der Schalter Urlaubsmodus wird automatisch zurückgesetzt.

    An der Heiztherme werden auch noch Sensoren und Aktoren verbaut um sie ggf. mit einfließen zu lassen :)


    Da der Post maximal 10.000 Zeichen und 10 Dateianhänge unterstützt, versuch ich die Skripte in einem separaten Post zu zeigen.


    Badezimmer Wochenprogramm (kein Urlaub):

    Batteriestatus:

    Erdgeschoss Wochenprogramm (kein Urlaub):

    Küchentuer geöffnet:

    Schlafzimmer Wochenprogramm (kein Urlaub):

    Sommermodus aktiv/inaktiv:

    Umschaltung Urlaubsmodus:

    Wochenprogramm (Urlaub):


    Export für vis (gefunden im ioBroker Forum):

    Sieht doch auch vielversprechend aus musst halt basteln mit diesen Kontakten.Bleibt nur die Frage ob Du mit den Fenster und Türsensoren billiger kommst und nicht so viel basteln muss. Ansonsten sage ich mal stelle deine Kontakte dann hier mal vor als Anleitung.

    Funktionieren tut der Script jedenfalls in Tests.

    Also als Alarmanlagentechniker war ich ja vorausschauend und habe vor ein paar Jahren überall Kabel hingezogen. Ja, sogar in Briefkastennähe ^^

    Und an die Kontakte komm ich auch wesentlich günstiger :D

    Empfehlen kann ich aber z.B.die hier.

    Sollten die Magnete zu schwach sein, kann ich auch nur immer wieder gerne auf neodym Magnete verweisen. ^^

    Hat man keine Kabel, kann man auch einen ESP-01 im Deep Sleep Modus betreiben und den mit Batterie betreiben... So würde ich es machen, auch weil ich Spaß am basteln habe :)

    Wollte nur mal meinen Senf dazu geben, ohne Bezug auf irgendwas oder irgendwen zu nehmen.

    Ich werde mir zwei Reed-Kontakte an die Briefkastenklappe und die Briefkastentür installieren und das ganze verkabelt an ioBroker übertragen.

    Als Skript hab ich mir schonmal Folgendes gebastelt:

    v4AAlgs.png


    Beim Öffnen der Klappe wird ein Zähler auf 1 gesetzt. Jeweils nach der dritten, vierten und fünften Sekunde wird nochmal geprüft ob die Klappe offen ist. Somit kann man, wenn auch mehr "stichprobenartig" checken, ob der Postbote die Klappe öfter bewegt hat.

    Ist nach 22 Sekunden die Klappe immer noch offen, ist wohl eine Zeitung im Kasten.

    Dementsprechend wird anschließend ausgewertet, ob ein Brief, mehrere Briefe oder die Zeitung im Briefkasten ist.

    Wird die Tür vom Briefkasten geöffnet wird der Briefkasten als leer deklariert, wodurch auch schöne via-anzeigen möglich sind :)


    Ist sicherlich nicht die Schönste Art, vielleicht geht es mit Schleifen einfacher, aber ich bin auch noch Anfänger ^^


    EDIT:

    Noch sinniger wäre aber wahrscheinlich einfach eine TCRT5000 innen, im Briefkasten, aber direkt ganz Ober an der Klappe zu installieren. So könnte man die genaue Anzahl an eingeworfenen Briefen zählen ;)

    Das könnte dann so aussehen:

    FOuXgTn.png

    Hi dudes,

    bin jetzt seit knapp nem Monat intensiv beim ioBroker. zuvor hab ich schon viel anderes Zeug ausprobiert. Fast ausschließlich selbst gebaut.

    Mit ioBroker gibts denke ich eine sehr gute Schnittstelle um alles zu kombinieren. Kurz zur Erläuterung worum es hier geht.

    Ich habe eine stinknormale Funktürklingel gehabt und immer das Problem gehabt, dass ich nicht mitbekommen habe wenn es geklingelt hat, während ich im Garten stand. Da ich noch mehrere ESP Module aus vergangenen Projekten hier hatte, hab ich nun zwei ESP-01 dazu verwendet beim Betätigen der Klingel einige Aktionen auszuführen. Wir reden hier über maximal 10€ Materialkosten.

    Was hab ich erreicht? Beim Betätigen der Klingel werden folgende Aktionen ausgeführt:

    1. Normale Klingel klingelt weiterhin

    2. Textbenachrichtigung per Telegram

    3. Aktuelles Kamerabild der Überwachungskamera am Hauseingang

    4. Telefone der Fritzbox klingeln

    5. Handy klingelt auch, falls die Fritz!Fon App verwendet wird

    Einen ESP-01 hab ich in das Außen-Bedienteil der Alarmanlage versteckt und daran einen Klingeltaster angeschlossen. Der zweite ESP-01 liegt im Keller, an den ich ein Relais angeschlossen hat, welches wiederum den Taster von dem Funk-Klingeltaster kurzschließt. Somit klingelt schonmal die normale Klingel wieder.

    Verwendet hab ich hier ESPEasy. Mit Tasmota lässt sich das bestimmt auch herrichten, wenngleich ich nicht weiß, ob die ESP-01 dazu ausreichen (Stichwort: Flashspeicher)

    Alles mit Blockly geschrieben, bis auf den Skript für das Kamerabild per Telegram. Der Skript ist auch nicht von mir. Hab ihn hier irgendwo gefunden und an mich angepasst: https://forum.iobroker.net/viewtopic.php?…e6ba11d1#p26342

    In meinem Fall nutze ich eine TruVision Kamera, welche nahezu identisch mit Hikvision ist, wodurch ich einen Link für die "Snapshot URL" von Hikvision nutze. Eine Auflistung welche URL ihr nehmen müsst findet ihr hier:

    https://www.ispyconnect.com/sources.aspx


    Zuvor am Besten noch via ssh an euerm ioBroker-Server einen Ordner erstellen und Rechte vergeben:

    mkdir /opt/iobroker/iobroker-data/klingelbild

    chmod +rw /opt/iobroker/iobroker-data/klingelbild/


    (ggf. die Befehle mit sudo ausführen)


    Der Skript wird mit dem anderen Blockly-Skript aktiviert und beendet sich dann automatisch.

    @SchimmerMediaHD

    Wollte es euch einfach mal mitteilen. Vielleicht ja auch ein kleines mini-youtube-tutorial wert, da ich es schon echt nice finde, direkt nach dem Klingeln so viele Funktionen zu bekommen :)


    Falls Fragen sind helfe ich gerne, wenn ich Zeit finde


    Skript für

    Ist zwar schon etwas her, aber ich möchte trotzdem mal anmerken, dass die Anzeige im ioBroker nicht ernst zu nehmen ist. Genauso wenig die Anzeige im "htop"

    Linux, und eben auch Raspbian, reserviert Speicher gerne mal und zeigt diesen dann als "verbraucht" an. Er ist aber lediglich reserviert und wird freigegeben, sobald dieser benötigt wird.

    gebt mal im terminal "free -m" ein. Dann steht ganz rechts ein Reiter namens "available". Das ist der tatsächlich freie RAM ohne Reservierungsberücksichtigung. Erst wenn dieser Wert Richtung 0 schrumpft wird es eng.

    Im beispielfoto von meinem Server sieht man es. ioBroker meint ich hätte nur noch knapp 150 MB übrig. Eigtl. sind aber knapp 550 :)

    Just for info ;)

    https://www.linuxatemyram.com