Beiträge von JoergZ

    Hhm habe jetzt mehrere Timer eingerichtet. Zuletzt Timer 4 mit folgenden Einstellungen:

    aktiv: ja (grün)

    Wiederholung nein (grau)

    Wochentag: Sa

    Mode 0

    Time 15:15 +/- 0

    Aktion aus

    Relais 1

    anschließend Speichern getappt.


    Folgender Ausdruck wird übertragen:

    Code
    1. Schalter/stat/RESULT = {"Timer4":{"Arm":0,"Mode":0,"Time":"00:00","Window":0,"Days":"0000000","Repeat":0,"Output":1,"Action":0}}

    Egal was ich eingebe, es wird immer "Arm" :0 ... und "Time":"00:00" ... und Days "0000000" übertragen.

    Richte ich einen Timer über die Weboberfläche des Schalters ein, wird mir dieser in der Tasmota-App korrekt angezeigt. Aber das Setzen eines Timers über die App will mir nicht gelingen. Die App hat alle Rechte, die sie haben möchte.

    Ich habe mal einen Screenshot vom Tablet gemacht, damit du die Einstellungen sehen kannst:

    Perfekt! Läuft alles: Schalter nur Scan beim Start, danach Ruhe, Schalten und Darstellung des Zustandes der Schalter bzw. Kanäle korrekt bei ON und OFF, Gruppen werden geschaltet wie definiert. Saubere Leistung und herzlichen Dank!


    Edit: Soll Zeitpläne und Regeln schon funktionieren? Wenn ja, dann klappt das bei mir nicht.

    Wenn ich Dich richtig verstanden habe, geht nur Status und nicht Status 0

    So hart würde ich es nicht formulieren ;) aber wenn es nur um den Schaltzustand geht reicht status ohne irgendeine Zahl. Im JSON-String befinden sich dann (auch) die Power-Informationen. status 0 bis 11 sind Spezifikationen von "Gib mir alles" (status 0) über Speicherinformationen (4), Netzwerkinformationen (5) bis zu Sensorinformationen (8 und 11) usw. Status 0 ruft alle Informationen ab, was ja eigentlich nicht erforderlich ist. Pulsetime lässt sich leider nicht über eine status -Meldung ermitteln. Das wäre natürlich praktisch.


    Habe gerade noch etwas entdeckt (wenn mal schon mal genauer in manchen Firmware-Winkel schaut): status 11 liefert auch Power-Informationen und für den 4CH sogar in der Form Power1 : OFF, Power2 : ON, Power3 : ON, Power4 : OFF. Wäre eine Alternative zu status (ohne Zahl).


    Leider kann ich deine neueste Version im Moment nicht testen, weil mein Test-Tablet gerade "auftankt".

    OK. Aber das bringt mich auf folgende Idee:


    Wenn du statt http://XXX.XXX.XXX.XXX/cm?cmnd=Power folgendes abfragst http://XXX.XXX.XXX.XXX/cm?cmnd=status dann bekommst du ebenfalls den Power-Zustand gemeldet und zwar ohne dass du das Power-Topic anfassen musst. Beim Multischalter ist die Rückmeldung des Power-Wertes etwas anders nämlich so (Die Werte beziehen sich auf Power ON für den jeweiligen Kanal):

    Kanal Power-Value

    Kanal 1 == 1

    Kanal 2 == 2

    Kanal 3 == 4

    Kanal 4 == 8

    also eine schöne binäre Reihe. Wenn mehrere Kanäle eingeschaltet sind, so ist der ausgegeben Power-Wert die Summe aus den oben stehenden einzelnen Kanalwerten. Beispiel: Wenn Kanal 3 und Kanal 4 eingeschaltet sind, wird für Power der Wert 12 ausgegeben (Summe 8 + 4). Wenn Kanal 1 und Kanal 3 geschaltet sind, ist der Power-Wert 5 (Summe 1 + 4) usw.


    Mir würde die Umstellung der Schleifenabfrage weg von power und stattdessen hin zu status sehr helfen. Dann labert mich mein Snips nicht voll, weil mein Skript nicht auf status reagiert. Die Temperatur und Feuchtigkeits-Ansage habe ich deshalb gehört, weil die Abfrage von Status 0 den Status 11 beinhaltet. Diesen benutze ich für die Temperaturansage. Aber ich kann verstehen, dass du für mich dein Programm nicht umkrempelst :(, aber schön wäre es schon (und ich glaube von der Systematik bzw. Funktion von Status-Meldungen her betrachtet konsequenter). :)


    Und bei allem, was du noch wie oben beschrieben vorhast, sage ich nur weiter so! Ich sehe das wie HoerMirAuf : du setzt das um, was Creationx vor mehr als einem Jahr angekündigt hatten und nicht realisiert haben.

    Martin Hesse : Ich finde auch , dass dieses Projekt eine Rubrik (und Unterstützung), wie von HoerMirAuf vorgeschlagen, verdient!

    svko Multischalter funktioniert nun korrekt, alle Kanäle werden als On bzw. OFF mit den entsprechenden Symbolen angezeigt. Beim ersten Scan wurden sogar die Werte des TH 10 ausgegeben und (bei mir) angesagt. Interessanterweise wird das nicht permanent wiederholt.

    es wird permanent die Liste mit gefundenen Geräten gescannt, irgendwie

    muss ich ja an die Schaltzustände kommen,

    Ja, das ist leider das Problem, wenn man die Zustände über das HTTP-Protokoll abfragt. und genau das macht mir ein "Problem". Mit MQTT könnte man die relevanten Topics subskribieren und es würde der Zustand angezeigt, der zuletzt gemeldet wurde. Die Abfrage des Powerzustandes über HTTP löst eben auch eine MQTT-Meldung des Topics stat aus. Da ich die Stat-Meldungen (+/stat/POWER) meines MQTT-Brokers über ein Python-Skript auswerte, um ein echtes Feedback zu haben, dass ein Schaltvorgang auch tatsächlich ausgeführt wurde, führt deine Abfrageschleife bei mir zu einer Ansageschleife über den jeweiligen Zustand der gescannten Geräte. Das ist natürlich überhaupt nicht das Problem deiner Programmierung, sondern führt bei mir zu einem etwas nervigen Nebeneffekt, zu dem du aber gar nichts kannst. Ich finde deine App klasse!

    4CH:

    Code
    1. {"Status":{"Module":7,"FriendlyName":["Multischalter","Multischalter2","Multischalter3","Multischalter4"],"Topic":"Multischalter","ButtonTopic":"0","Power":0,"PowerOnState":3,"LedState":1,"SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0},"StatusPRM":{"Baudrate":115200,"GroupTopic":"werkstatt","OtaUrl":"http://192.168.178.20:8080/ota/firmware.bin","RestartReason":"Power on","Uptime":"0T00:00:16","StartupUTC":"2019-10-17T04:56:11","Sleep":50,"BootCount":348,"SaveCount":1328,"SaveAddress":"F4000"},"StatusFWR":{"Version":"6.4.1(sonoff)","BuildDateTime":"2019.02.17 17:57:44","Boot":6,"Core":"2_4_2","SDK":"2.2.1(cfd48f3)"},"StatusLOG":{"SerialLog":2,"WebLog":2,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["JCG-9BFEE4","Stube"],"TelePeriod":300,"SetOption":["000A8009","558180C0","00000200"]},"StatusMEM":{"ProgramSize":519,"Free":484,"Heap":23,"ProgramFlashSize":1024,"FlashSize":1024,"FlashChipId":"144051","FlashMode":3,"Features":["00000407","0FDAE794","240383A0","23B617CE","00003BC0"]},"StatusNET":{"Hostname":"Multischalter","IPAddress":"192.168.178.70","Gateway":"192.168.178.1","Subnetmask":"255.255.255.0","DNSServer":"192.168.178.1","Mac":"60:01:94:9C:78:DE","Webserver":2,"WifiConfig":4},"StatusMQT":{"MqttHost":"192.168.178.20","MqttPort":1883,"MqttClientMask":"DVES_%06X","MqttClient":"DVES_9C78DE","MqttUser":"DVES_USER","MqttType":1,"MAX_PACKET_SIZE":1000,"KEEPALIVE":15},"StatusTIM":{"UTC":"Thu Oct 17 04:56:27 2019","Local":"Thu Oct 17 05:56:27 2019","StartDST":"Sun Mar 31 02:00:00 2019","EndDST":"Sun Oct 27 03:00:00 2019","Timezone":"+01:00","Sunrise":"06:58","Sunset":"17:01"},"StatusSNS":{"Time":"2019-10-17T05:56:27"},"StatusSTS":{"Time":"2019-10-17T05:56:27","Uptime":"0T00:00:16","Vcc":3.547,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":2,"SSId":"Stube","BSSId":"00:04:0E:DA:C7:D0","Channel":12,"RSSI":50}}}


    Wenn Du länger auf das Schaltersymbol drückst, bekommst Du eine andere Ansicht, je nach Gerät ändern sich dort die Symbole?

    Bei "Geräte" wird dann die Weboberfläche des Schalters gezeigt, wenn ich bei "Gruppen" länger drücke, passiert gar nichts.

    svko

    OK, es gäbe da noch was: Wird eigentlich permanent ein Scan durchgeführt?. Wie ich weiter oben bereits mal am Rande erwähnte, bekomme ich eine akustische Rückmeldung, wenn ein Gerät geschaltet wird bzw. der Status von Geräten abgefragt wird. Wenn ich dein Tool starte, bekommen ich permanent eine Ansage über den Zustand der Geräte. Auch in der Konsole der Schalter lässt sich verfolgen, dass der gewählte Zustand in geringen Zeitabständen an die Geräte geschickt werden. Ist das Gerät eingeschaltet, so wird ungefähr im Abstand von ca. 2 Sekunden ein Power OFF geschickt, ist es ausgeschaltet ein Power OFF. Da scheint eine Schleife nicht ganz richtig programmiert zu sein: anstatt den Zustand nur abzufragen, wird er an die Geräte geschickt. Kannst du da noch mal hinschauen.

    Die Log-Datei war eine gute Idee! Für mich sieht es so aus, dass beim Anlegen der Gruppe der Befehl korrekt gespeichert wird:

    Code
    1. 192.168.178.66/cm?user=admin&password=joker&cmnd=Power1%20Toggle
    2. 192.168.178.70/cm?user=admin&password=joker&cmnd=Power1%20Toggle

    Beim Schalten der Gruppe wird aber die Maskierung der Leerstell vor dem Toggle "vergessen".

    Code
    1. 192.168.178.66/cm?user=admin&password=joker&cmnd=Power1 Toggle
    2. 192.168.178.70/cm?user=admin&password=joker&cmnd=Power1 Toggle

    Hab's mit curl überprüft. Nur mit dem %20 vor dem Toggle wird korrekt geschaltet, sonst nicht. Schau mal, dass du die Maskierung wieder reinbekommst. Der Browser steckt das so weg, aber nicht, wenn du andere Programme zur Übertragung eines HTTP-Statements benutzt.

    Optik ist schick, jedoch hat sich beim Gruppenschalten nichts geändert: Es wird immer der Befehl Power OFF an die Geräte gesendet, egal ob ON oder TOGGLE gewählt wurde. Dann folgende Phänomene:


    Der erste Scan nach Installation der aktuellen Version der App war vollständig

    Ein Router/AccessPoint wird als Tasmota-Gerät angezeigt

    Ursprünglich angezeigte Tasmota-Geräte "verschwinden" plötzlich und erscheinen auch nach einem Neustart der App nicht mehr

    Erneutes Scannen zeigt ein paar Geräte mehr an, aber nicht alle

    Erst eine Erhöhung der Scan-Zeit auf 500 ms führte dazu, dass wieder alle Geräte angezeigt wurden.


    Zur Gruppensteuerung: Ich habe festgestellt, dass die Gruppensteuerung den zuletzt am Gerät vorgenommen Schaltvorgang lediglich wiederholt:

    1. Gruppe steht auf TOGGLE
    2. Ich schalte ein Gruppengerät über die Web-Oberfläche an: Das Gerät wird angeschaltet
    3. Ich betätige den Gruppenschalter: Das Gerät wird (erneut) angeschaltet
    4. Ich schalte über die Web-Oberfläche aus: Das Gerät wird ausgeschaltet
    5. Ich betätige den Gruppenschalter: Das Gerät wird (erneut) ausgeschaltet.


    Welcher Befehl wird denn generiert, wenn ein Gruppenschalter betätigt wird?


    EDIT: Bei einem 4CH wird nur der Kanal Power4 richtig angezeigt, das Schalten funktioniert für alle Kanäle aber die Anzeige nur für Power4

    Deshalb ist es einfacher wenn man dem Router sagt, er soll im DHCP Betrieb bekannten MAC Adressen immer die selbe IP zuweisen.

    Mein lieber Helfinger genau das sind keine festen IPs sondern an den Router gebundene DHCP-Zuweisungen derselben IPs an dieselben MAC-Adressen. Wenn der Router gewechselt wird, ist man eben am A.... Deshalb laufen nur feste IPs die an die Endgeräte gebunden sind, wirklich gut. Dann muss man nur im neuen Router diese IPs von der DHCP-Vergabe ausschließen.

    Knacki65 Haben deine Sonoffs eindeutige Hostnamen? Hast du mal das Aufrufen von http://hostname.local oder http://hostname.[domain-name-deines-neuen-Routers] also bei einer Fritzbox würde das http://sonoffname.fritz.box heißen. Hast du eine Netzwerkübersicht in deinem neuen Router? Werden die Geräte dort angezeigt? Hat dein neuer Router dieselbe Basisadresse wie dein alter und ist der DNS auf derselben IP wie vorher zu erreichen?

    svko Ich habe die gewünschten Berechtigungen akzeptiert. Die Gruppe lässt sich auch speichern. Und das beim Schalten der Gruppe immer ein OFF, egal ob ON, OFF oder TOGGLE gewählt wurde, geschickt wird, kann ich sowohl in der Konsole auch im MQTT-Broker verfolgen. Es scheint auch so zu sein, dass deine App periodisch (bislang nicht reproduzierbar) die Geräte antriggert und den Schaltzustand, der bereits gewählt ist, erneut abschickt. Ich kann das daran feststellen, weil ich ein Python-Skript am Laufen habe, dass den MQTT-Broker "abhört" und mir jede Power-Status-Meldung per akustischer Ansage über SNIPS mitteilt.

    Noch was: Wenn ich auf einen Eintrag im Bereich "Gruppen" klicke, wird das Gerät was im Bereich "Geräte" an der Position liegt, geschaltet. Es scheint so zu sein, dass der Displayinhalt von "Geräte" zwar nicht zu sehen ist, aber dennoch aktiv ist und auf Berührung reagiert.

    Bekomme dieselbe Fehlermeldung wie motorrad . Beim daneben klicken gehts weiter. Alle Geräte werden gefunden, Schalten funktioniert.

    Funktion Gruppe: Lässt sich einrichten, jedoch wird immer ein POWER OFF geschickt, egal welchen Schalttyp ich wähle.


    Was mir nicht gefällt: Wieso braucht die App Berechtigung den Inhalt der SD-Karte zu ändern oder Bilder und Videos aufzunehmen?

    Naja, das ist hier im weitesten Sinne ein Maker-Forum. D. h. Fertig-Lösungen bekommst du hier nicht. Die kann man anderswo kaufen (inklusive Bagger- und Verlegearbeiten). Hilfe bekommst du hier zur Selbsthilfe, was auch immer bedeutet, dass du Informationen und Beschreibungen liefern musst und von uns Hinweise und Lösungen erhalten kannst. Versuche mal bitte Informationen zu beschaffen über:

    • Welche Sensorik ist vorhanden (am besten Typ oder Markenname oder Bezugsquelle)?
    • Ist das ein analoger oder ein digitaler Sensor?
    • Welche Kenntnisse hast du selber oder der Pool-Besitzer/in in Sachen IT (z. B. Raspberry Pi)
    • Wie weit ist der Pool vom Haus bzw. von der nächsten WLAN-Quelle entfernt?
    • Lässt sich am Pool wetter- und halbwegs Feuchtigkeits geschützt weitere Elektronik (z. B. ein Raspbery Pi) verbauen. Hinweis: Die Sonoffs sind nicht wirklich Feuchtraum geeignet.

    Hier noch ein Link zu einer Seite, auf der die Sensoren, die mehr oder weniger gut mit Tasmota zusammenarbeiten, gelistet sind:

    https://github.com/arendst/Son…wiki/Sensor-Configuration


    Ich wollte dir nicht auf die Füße latschen, aber wir können nur helfen, wenn du selber mithilfst. Dein Lohn für alles: mehr Kompetenz, mehr Spaß, mehr Ideen. In diesem Sinne...

    und am Pool-Ende des Kabels hängt die ganze Pool-Sensorik oder ist das nur ein Stück Kabel? Lass dir doch nicht die Würmer so aus der Nase ziehen. Beschreibe mal in wohl gesetzten Worten und/oder mach ein paar Fotos.

    Dieses müsste man bis zur Umwälzpumpe ins Haus verlängern

    Mach es doch einfach. Ob es funktioniert oder nicht bekommt sowieso nur bei der Umsetzung heraus. Wenn du dich auf mögliche Nebenwirkungen vorbereiten willst oder das richtige Kabel auswählen willst, suche mit Google und den Worten Sensor an langer Leitung oder Sonoff Sensor und langes Kabel und ähnliche Ausdrücke. Ich bin sicher, du bekommst jede Menge Informationen.

    Ich wollte aber einen Vorschlag, wo ich die Steuerung vom Pool anzapfen kann und über WLAN weiterleiten kann.

    Was genau meinst du damit? Die Stelle im Pool, wo der Sensor sitzen soll?


    Hier ist z. B. ein Sensor, der wasserdicht ist und prinzipiell mit Tasmota/Sonoff oder einem Raspberry mit D/A-Wandler zusammenarbeitet. Ich habe ein vergleichbares Problem mit einem 1-Wire-Drucksensor an einem Raspberry Pi gelöst: Fällt der Druck in der Gartenwasserleitung (weil ein Wasserhahn aufgedreht wurde) wird ein MQTT-Befehl an den Sonoff-Basic geschickt, der den Strom für die Gartenwasserpumpe schaltet. Ich hätte auch einen HTTP-Befehl auslösen können, also quasi ein Websend.


    Schau mal hier im Forumin die Projekte

    Mein Sonoff-Projekt rein, z. B. Ölstand messen.


    Ein Wasserdichter Temp-Sensor ist dieser:

    https://www.ebay.de/itm/DS18B20-Wasserdicht-Digital-Temperatur-F%C3%BChler-Sensor-1-wire-Raspberry-Pi-Arduino/252715001868?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649