Habe heute 2 dieser kostengünstigen SonoffPOW (https://www.itead.cc/sonoff-pow.html) Module erhalten und bereits einige erfolgreiche Tests durchgeführt.
Die Anbindung an FHEM erfolgt über MQTT und ist sehr einfach zu realisieren. MQTT wurde deshalb ausgewählt, da es hier bereits fertige Sketches (vom Autor Arends) für dieses Modul gibt. Die Schwierigkeit liegt wohl an der Implementierung der Frequenzumrechnung des "Voltage to Frequency Converter" HLW8012, welche in ESPEasy zum derzeitigen Zeitpunkt noch nicht vorhanden ist. Auf diese kleine Module ESPEasy zu flashen ist meiner Meinung auch wie mit Kanonen auf Spatzen schießen. ESPEasy ist sehr mächtig und für diese Zwecke wohl total überladen. Der Autor Arends hat nur die wesentlichen Funktionen implementiert, die auch von den Modulen geliefert werden. Die Software läuft auch auf den Switches seit einigen Wochen äußerst stabil.
Meine komplette Einrichtung habe ich dokumentiert und im Wiki (http://www.fhemwiki.de/wiki/Sonoff) abgelegt ( Punkt 2.6 einrichten ).
hier eine kurze Zusammenfassung:
- Arends Module downloaden (https://github.com/arendst/Sonoff-MQTT-OTA-Arduino), aktuelle Version ist 2.0.9
- in der Datei user_config.ino die IP Adressen einstellen und das Modul "SONOFF_POW" definieren (#define MODULE SONOFF_POW )!
- Sketch mit Arduino IDE 1.6.12 (https://www.arduino.cc/en/Main/Software) compilieren und exportieren.
- Sketch auf das Modul flashen oder hier eine fertige Binary (https://forum.fhem.de/index.php/topic,60336.msg518113.html#msg518113)
- auf dem Raspberry den Broker einrichten (http://www.fhemwiki.de/wiki/Sonoff#MQTT_Server_einrichten) (sofern der noch nicht läuft)
- In Fhem den Broker einrichten und definieren.
Alle die oben angeführten Arbeiten können aus dem Wiki mit Beispielen entnommen werden.
Langzeiterfahrung habe ich noch keine, da die Module erste heute Vormittag eingetroffen sind. Der längere Teil der Anbindung ist wohl die Vorbereitung und das flashen des Moduls, sollte aber auch in 1-2 Stunden erledigt sein.
Achtung: erst ab Version 2.0.9 funktioniert die Leistungsanzeige für das Modul POW korrekt!
LG
Reinhart
ich musste nun leider feststellen, dass die gelieferten Messdaten nicht stimmen. Das Ganze hat zwar nichts mit der Anbindung zu tun, sondern wird schon vom Modul (oder der Software) so geliefert.
Die Spannung wir statt 230V mit 14V angezeigt, die Leistung statt 100 W mit 36 W, der Strom ist auch daneben aber jeweils mit unterschiedlichem Faktor. Ob das nun mit dem Modul oder der Software zusammen hängt, werde ich morgen an dem 2.Modul mit der Originalsoftware testen. Ich schätze aber, dass im Sketch noch ein Fehler ist, denn durch ändern der Referenz Frequenzen kann ich keine anderen Endergebnisse erzielen.
Wenn jemand auch schon ein Sonoff Pow hat, würde mich seine angezeigten Ergebnisse brennend interessieren!
LG
Reinhart
so, ich habe die Fehlanzeige nun einmal temporär gefixt und andere Referenz Frequenzen gesetzt. Die Impulsreferenz zeigte ursprünglich keine Wirkung an der Anzeige.
Ob das aber im Sinne des Entwicklers ist bezweifle ich stark. Ich muss nun mehre Leistungsstufen mit dazwischengeschalteten Energiemesser testen und schauen ob das linear bleibt.
Bei mir hat sich nun folgende Referenz ergeben:
#define HLW_PREF 28570 // 1000.0W
#define HLW_UREF 36507 // 230.0V
#define HLW_IREF 6872 // 4.545A
LG
Ich habe noch die Leistungsanzeige bei meiner Konstellation näher verifiziert.
Zunächst habe ich den 2. POW ausgepackt und in der App hinzugefügt. Getestet habe ich dann mit einer 3W Led, 11 W Led Lampe und einer 100 Watt Lampe, die Anzeigen (siehe Snapshot) stimmen ziemlich genau mit dem Energiemesser überein. Dann habe ich die Originalfirmware des POW mit Python gesichert und anschließend mit dem Arends Sketch mit meinen modifizierten Referenzfrequenzen bespielt.
Die Anzeigen war diesmal wieder um einiges zu tief, so habe ich den neuen Faktor umgerechnet und neu compiliert. Das Ergebnis war nun exakt. Die Anzeige der Leistung ist auch linear, nur kleine Leistungen mit 3W kann ich nicht erfassen, was aber mit der Itead Software funktionierte.
Ich bin nach folgender Formel vorgegangen:
HLW_PREF_new= Psoll/Pist x HLW_PREF
Psoll = Leistung des Verbrauchers (bei einer 100Watt Lampe also 100Watt, oder besser mit Energiemesser nachgemessen)
Pist = die angezeigte Leistung im MQTT String.
HLW_PREF = Referenzfrequenz für 1000 Watt.
Indem nun die Leistung schön linear angezeigt wird, kann ich damit leben. Die Spannung und der Strom verhalten sich NICHT linear, wird die Leistung kleiner, wird auch die angezeigte Spannung wieder kleiner. Sieht irgendwie so aus, als sei der angezeigte Wert nur der Spannungsabfall des Shunt. Spannung und Strom sind auch uninteressant (die Spannung bleibt ja immer mit 230V unverändert und der Strom wäre auch nur zur Info, weil ja die Leistung im Baustein HLW8012 selbst berechnet und ausgegeben wird.
Das würde also für alle POW Bastler bedeuten, sie müssen sich jedes Sonoff POW selbst kalibrieren damit die Leistungsanzeige stimmt. Bin schon gespannt, was andere Anwender darüber berichten.
LG
so, der Autor hat das Problem erkannt und hat vor 2 Stunden eine gefixte Version veröffentlicht!
/* 2.0.9 20161108
* clarify MODULE in user_config.h
* Fix hlw false values
*
* 2.0.8 20161108
* Add initial status after power on
* Seperate driver files
* Fix hlw code and calibrate Pow
* Move user config defines to user_config.h
Die im HLW falsch berechneten Daten wurden nun gefixt.
Nach ersten Tests schaut es nun gut aus. Statt tatsächlichen 100 Watt werden zwar nur 87 angezeigt, aber die geringfügige Abweichung habe ich durch leichte Erhöhung der Referenzfrequenz von 10000 auf 11200 kompensiert.
Wer also testen will. unbedingt die >=2.0.9 verwenden!
Bitte unbedingt beachten, in der Library "pubsubclient/src/PubSubClient.h" die Packet_Size anpassen!
#define MQTT_MAX_PACKET_SIZE 360
Ich bleibe aber dran und teste die nächsten Tage/Wochen weiter. Sobald die Module wieder verfügbar sind, werde ich mir noch ein paar besorgen.
LG
Zitat von: Reinhart am 08 November 2016, 13:10:15
Dann habe ich die Originalfirmware des POW mit Python gesichert und ...
Vielen Dank für die bisherigen Analysen. Könntest Du noch eine Kurzanleitung für das sichern der Firmware geben. Danke Dir
Gesendet von iPhone mit Tapatalk
Hallo Reinhart,
für alle wie mich, die wenig Ahnung haben
Damit man das kann:
ZitatSketch mit Arduino IDE 1.6.12 compilieren und exportieren.
Muß man noch Vorbereitungen treffen.
ZitatIn der Arduino IDE im Menü Datei die Voreinstellungen öffnen.
Dort http://arduino.esp8266.com/stable/package_esp8266com_index.json in das Feld Additional Board Manager URLs eintragen.
Jetzt im Menü Werkzeuge -> Platine den Eintrag Boardsmanager wählen.
Hier die ESP8266 Erweiterung installieren (tyischerweise ganz unten).
Installation prüfen:
Nach der Installation kann man dann im Menü Platine weiter unten das Board ,,Generic ESP8266 module" auswählen. Es erscheinen jetzt auch die Beispiele für das ESP Board. Ich habe mit Beispiele->ESP8266WiFi->WiFiWebServer gestartet.
Vielleicht für Anfänger noch ins Wiki. ;)
Billy
@JoWiemann
da habe ich auch etwas gesucht und folgende einfache Art gefunden. Natürlich habe ich das mit protokolliert.
Phython (http://domoticx.phoenixinteractive.nl/software/python/python-2.7.msi.7z) am PC installieren, Version 2.7 (C:\Program Files (x86\Phython)
serielle Bibliothek (http://domoticx.phoenixinteractive.nl/python/libraries/pyserial/pyserial-2.7.win32.exe.7z) hinzufügen (als Admin installieren)
ESPTool herunterladen (http://domoticx.phoenixinteractive.nl/software/esptool/esptool%20%28github%29%20%28gedownload%20op%202016-01-02%29.7z), ich habe es einfach ins Verzeichnis zu Phython kopiert (C:\Program Files (x86\Phython)
Ich habe dann noch "alle Rechte" (Vollzugriff) auf das Verzeichnis "Phython" für den angemeldeten User frei gegeben, damit auch das Backup geschrieben werden kann.
Das Modul sonoffPOW auf KEINEN Fall mit der Netzspannung verbinden, sondern nur mit USB-Konverter (siehe Bild im Wiki).
Während dem Einstecken des USB Steckers am PC die Taste am sonoffPOW gedrückt halten, dann geht das Modul automatisch in den Flashmode.
Dann öffnest du eine Kommandoshell (cmd), stellst dich ins Verzeichnis der Phytoninstallation und gibst folgendes Kommando ein. Bei mir war es com3, musst halt auf deine anpassen.
Ich habe mir hier noch eine Hardcopy gemacht, wie das Backup bei mir durchgelaufen ist.
python esptool.py --port COM3 --baud 115200 read_flash 0x000 524288 backup.bin
Das Ganze geht RuckZuck und auch die Installation von Phyton sollte innerhalb von 10 Minuten zu schaffen sein.
Ich hoffe du hast schnell Erfolg damit, auch ich wollte unbedingt eine Sicherung haben, damit ich wieder zurück kann wenn ich will!
LG
Reinhart
@Billy
Danke für deinen Vorschlag, ich werde mir den Teil noch genauer anschauen und zumindest noch einige Links einpflegen. Wer nicht selber compilieren will, kann aber auch die fertige Binary aus dem Packet von Arends nehmen (im Verzeichnis Api/Arduino).
Allerdings kann man dann auch nichts ändern/anpassen, bzw. kann man das Modul SONOFF_POW nicht einstellen und bekommt dann auch keine Messdaten der Leistung.
Ich muss ohnehin noch einige Änderungen im Wiki durchführen, da der Autor Arends seine Files geändert hat (zB: power.ino)
LG
habe im Wiki einiges nachgebessert und erweitert. Mit der neuen Software 2.0.9 funktionieren die POWs nun gut!
Ich habe hier 2 Plots angehängt, am ersten hängt ein Gefrierschrank der offensichtlich nicht sehr wirtschaftlich arbeitet, da der Kompressor fast die ganze Zeit läuft. Weit entfernt von A+, ist auch ein älteres Modell mit 12 Jahren! Im 2. Plot sind 2 Gefrierschränke am POW angeschlossen, ebenfalls ältere Modelle aber diese Thermostate arbeiten noch gut mit längeren Ausschaltphasen.
Bei beiden Plots ist mit der POW Leistungsmessung schön zu sehen, dass bei Anlauf des Kompressors dieser mehr Leistung aufnimmt und nach etwa 1 Stunde die Stromaufnahme verringert.
Für Bastler sind die POW Module die ideale(und kostengünstige) Ergänzung und nun ganz leicht in Fhem zu integrieren. Bin schon gespannt, wann ESPEasy die POW unterstützt, doch es funktioniert auch MQTT unter Fhem sehr gut und ist ein ausgereiftes und stabiles Protokoll.
LG
Reinhart
ich hänge hier einmal eine compilierte Binary für das sonoff_POW an, sofern jemand mit der Arduino IDE nichts machen möchte.
Die Einstellungen sind wie folgt: (POW ist aktiviert, Broker und URL sind auf DNS Namen "raspberry".
// Enable only one out of three MODULE defines below
//#define MODULE SONOFF // Sonoff, Sonoff SV, Sonoff Dual, Sonoff TH 10A/16A, S20 Smart Socket, 4 Channel
#define MODULE SONOFF_POW // Sonoff Pow
//#define MODULE ELECTRO_DRAGON // Electro Dragon Wifi IoT Relay Board Based on ESP8266
#define PROJECT "sonoffpow" // PROJECT is used as the default topic delimiter and OTA file name
// As an IDE restriction it needs to be the same as the main .ino file
#define CFG_HOLDER 0x20160520 // Change this value to load default configuration parameters
#define SAVE_DATA 1 // Save changed parameters to Flash (0 = disable, 1 - 3600 seconds)
#define SAVE_STATE 1 // Save changed power state to Flash (0 = disable, 1 = enable)
// Wifi
#define STA_SSID "SSID" // Wifi SSID
#define STA_PASS "password" // Wifi password
#define WIFI_HOSTNAME "%s-%04d" // Expands to <MQTT_TOPIC>-<last 4 decimal chars of MAC address>
#define WIFI_CONFIG_TOOL WIFI_WPSCONFIG // Default tool if wifi fails to connect (WIFI_SMARTCONFIG, WIFI_MANAGER or WIFI_WPSCONFIG)
// Syslog
#define SYS_LOG_HOST "raspberry"
#define SYS_LOG_PORT 514
#define SYS_LOG_LEVEL LOG_LEVEL_NONE
#define SERIAL_LOG_LEVEL LOG_LEVEL_INFO
#define WEB_LOG_LEVEL LOG_LEVEL_INFO
// Ota
#if (ARDUINO >= 168)
#define OTA_URL "http://raspberry:80/api/arduino/" PROJECT ".ino.bin"
#else
#define OTA_URL "http://raspberry:80/api/arduino/" PROJECT ".cpp.bin"
#endif
// MQTT
#define MQTT_HOST "raspberry"
#define MQTT_PORT 1883
Die WIFI Accounts sind dann 3 x Taste kurz drücken und eine Smartconfig wird gestartet und die SSID und das Passwort kann über eine Android App eingegeben werden. https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch (https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch)
4 x Taste kurz drücken und man bringt den Device in den Access Point Mode mit der IP-Adresse 192.168.4.1.
LG
Kann man den POW auch nur als Leistungsmesser verwenden?
Sprich ... das Relais auslöten und die Kontakte überbrücken.
Liefert der POW dann immer noch die Messdaten ? Oder nur wenn das Relais geschaltet ist ?
Ich würde den nämlich gerne als Leistungsmesser an meinem Server einsetzten und da wäre es schlecht wenn das Relais zufällig ausschaltet ;D
Zitat von: Reinhart am 08 November 2016, 20:28:16
Ich hoffe du hast schnell Erfolg damit, auch ich wollte unbedingt eine Sicherung haben, damit ich wieder zurück kann wenn ich will!
Hallo Reinhart,
Python hatte ich schon drauf. Der Rest ging dann ganz easy. Danke noch mal für die Anleitung.
Herzliche Grüße Jörg
Zitat von: AxelSchweiss am 09 November 2016, 12:47:05
Kann man den POW auch nur als Leistungsmesser verwenden?
Sprich ... das Relais auslöten und die Kontakte überbrücken.
Liefert der POW dann immer noch die Messdaten ? Oder nur wenn das Relais geschaltet ist ?
Ich würde den nämlich gerne als Leistungsmesser an meinem Server einsetzten und da wäre es schlecht wenn das Relais zufällig ausschaltet ;D
kann ich dir so nicht beantworten, hat wohl noch keiner probiert. Aber die Kontakte überbrücken kannst du immer und wenn ich mir den Schaltplan so ansehe, dann hat das Relais keine weitere Rückmeldung auf interne Software.
Bei einem Server wäre das eine dumme Sache den abzuwürgen, habe eh schon Bedenken wegen meiner Gefrierschränke und werde die Sendebefehle in Fhem einfach blockieren, aber der lokale Taster bleibt mir trotzdem.
Das einzige was ich beobachtet habe, unabhängig ob das Relaise angezogen hat, kommen die MQTT Strings an den Broker, aber eben dann mit 0 Wert.
mosquitto_pub -q 2 -t cmnd/sonoffpow/1/TelePeriod/set -m "60" = Timer setzen, alle 60 Sekunden Daten senden
dieses Kommando setzt den Abfragezyklus auf 60 Sekunden, egal ob ein oder ausgeschaltet. Der Autor Anders nennt das Telemetriedaten (tele) die unabhängig vom Status gesendet werden. Wird der Taster gedrückt, kommen auch Statusmeldungen (stat)
LG
Na dann werde ich es einfach mal ausprobieren ... wenn ich den POW endlich habe.
Aktuell scheint ITEAD Lieferprobleme zu haben ... seit einer Woche ist der Bestellstatus "in Progress" :(
Mal eine Frage, wieso ist Sonoff unter
FHEM Forum » Verschiedenes » Bastelecke » ESP8266 versteckt und nicht unter
FHEM Forum » FHEM - Hausautomations-Systeme » Sonstige Systeme
zu finden?
Ist eigentlich keine Bastellösung mehr?
@Billy
war vielleicht von mir etwas unglücklich gewählt, aber ich habe mich an den Switch Beitrag angelehnt.
Gebastelt wird insofern, das immer wer versucht GPIOs frei zu schalten und nach extern zu führen um sie nutzbar zu machen (für Temperatur etc.). Die meiste Bastelei liegt wohl in der Software, da diese kommerziellen Geräte dafür eigentlich nicht vorgesehen sind (oder doch so vom Hersteller beabsichtigt).
LG
@JoWiemann
freut mich das die Sicherung funktioniert hat, aber ich muss ehrlich gestehen, dass ich noch nicht versucht habe das Backup der Originalsoft zurück zu spielen.
Hast du das schon getestet?
LG
Zitat von: Reinhart am 09 November 2016, 18:37:50
@Billy
war vielleicht von mir etwas unglücklich gewählt, aber ich habe mich an den Switch Beitrag angelehnt.
LG
Meine Idee war eigentlich das Thema zu promoten. Habe heute meine Sonoff Switches nach deiner WIKI problemlos zum Laufen gebracht.
Vielleicht lässt sich das Ganze ja noch verschieben.
BTW wann ist mit einer Wieder-Verfügbarkeit der Sonoff POW zu rechnen? Das Preis-Leistungsverhältnis ist überzeugend.
Billy
@Billy
freut mich wenn das nach der Wiki geklappt hat. Die nächste Charge #3 ist ja bereits in Fertigung, die POWs verkaufen sich wie warme Semmeln.
Wie stimmen bei dir die angezeigten Leistungswerte?
Leider habe ich den nächsten Fehler gefunden, das Reading TODAY_POWER wird alle volle Stunden auf 0 gesetzt, anstatt nur um Mitternacht!
Habe es dem Entwickler bereist gemeldet. So ist das halt mit Neuentwicklungen. Im angehängten Bild ist die rote Kurve die TODAY_POWER, geht jede Stunde wieder auf Null.
if (rtc_loctime() == rtc_midnight()) {
sysCfg.hlw_esave = hlw_kWhtoday;
hlw_kWhtoday = 0;
laut xsns_hlw8012.ino sollte das nur um Mitternacht so sein.
LG
@Billy
kannst du einmal in der Console des POW nachsehen ob die NTP Synchronisation ok ist?
00:13:35 MQTT: tele/sonoffpow2/TIME = 1970-01-01T00:13:35
bei mir nicht, darum bootet mein POW alle Stunde und setzt den TODAY_POWER auf 0. Soweit habe ich das bis jetzt mit Arends abklären können. Ich teste gerade die 2.0.10.
LG
Zitat von: Reinhart am 09 November 2016, 21:36:47
@Billy
kannst du einmal in der Console des POW nachsehen ob die NTP Synchronisation ok ist?
Das Problem hatte ich auch bei einem meiner 2 Switches nach update auf 2.0.10. auch. d.h. 1970 er Datum
Da war das Board aber noch an den 3,3V des Flashers.
War aber nach dem Anklemmen der Netzspannung ok.
Billy
Zitat von: AxelSchweiss am 09 November 2016, 16:52:56
Na dann werde ich es einfach mal ausprobieren ... wenn ich den POW endlich habe.
Aktuell scheint ITEAD Lieferprobleme zu haben ... seit einer Woche ist der Bestellstatus "in Progress" :(
In ihrem Forum hat ein Itead Mitarbeiter kürzlich geschrieben, dass sie momentan pro Woche so 50k von den Sonoffs raushauen.
Wir kaufen die gerade leer :-)
Zitat von: Billy am 10 November 2016, 15:37:58
Das Problem hatte ich auch bei einem meiner 2 Switches nach update auf 2.0.10. auch. d.h. 1970 er Datum
Da war das Board aber noch an den 3,3V des Flashers.
War aber nach dem Anklemmen der Netzspannung ok.
ich habe das heute ausgiebig getestet, die NTP Synchronisation erfolgt erst beim Stundenwechsel und ist dann in der Regel ok, egal ob Switch oder POW. Bei den POWs funktioniert das aber nicht, sondern die rebooten. Sperre ich die "#define MODULE SONOFF_POW" dann arbeitet der POW wie ein normaler sonoff Switch und auch die NTP Synchronisation funktioniert ohne Absturz beim Stundenwechsel, aber dann kommen eben keine Powerdaten weil er ja Switch ist.
Wenn bei dir das nun funktioniert, macht mich das stutzig, denn ich habe das auf beiden POW. Ich hoffe Theo schaut sich das an und kann den Fehler nachstellen, geschrieben habe ich es ihm und auch ein SysLog hinzugefügt.
LG
ich konnte nun das NTP Problem selber lösen, da ich mir die Init Rotinen genauer angesehen habe.
Nach dem Reboot des POW erfolgt die Initialisierung des WIFI mit Anmeldung, DHCP Request und jede Menge andere Inits für den POW. Dafür war die Zeit von 9 Sekunden bei mir zu knapp um die anschließende IF Bedingung der NTP Erst Initialisierung zu schaffen.
00:00:46 Wifi: Checking connection...
00:00:46 Wifi: Connected
00:00:58 RTC: (UTC) Thu Nov 10 19:01:54 2016
00:00:58 RTC: (DST) Sun Mar 27 02:00:00 2016
00:00:58 RTC: (STD) Sun Oct 30 03:00:00 2016
20:01:56 Config: Saved configuration (692 bytes) to flash at FA and count 221
20:02:02 Wifi: Checking connection...
hier das Log der jetzt funktionierenden NTP sync. nach dem Reboot! Ich hoffe das damit die stündlichen Reboots auch behoben sind. Ich muss noch abklären, ob Theo noch eine andere Lösung hat.
LG
im Prinzip verhalten sich meine POWs nun sehr stabil. Die gestern getätigten Änderungen im Sketch sind ein guter Workaround zu den eigenartigen Fehlern, das hat mir auch Theo Arends so bestätigt. Die Fehler zeigten sich auch nicht bei jedem gleich, das es von Geschwindigkeit der Erstinitialisierung des Modules abhängt. Da ich 3 aktive Accespoints mit DHCP Forwardern eingerichtet habe, dauert die Anmeldung schon etwas länger als mit mit einem.
Die gestrige Änderung beschränkt sich auf die Angabe der Sekunden wann die NTP Synchronisation durchgeführt werden soll. Da es grundsätzlich egal ist ob das nach 9 Sekunden (Originalwert) oder nach 58 Sekunden erfolgen soll, habe ich den Wert auf 58 Sekunden gesetzt und das reicht nun auch bei den langsamsten Routern aus um eine NTP Synchronisation zu schaffen.
Aus einem mir nicht nachvollziehbaren Grund stürzt eine spätere Neusynchronistaion (zur nächsten vollen Stunde) des NTP ab.
Zusätzlich zu diesem Workaround sollten alle Logs abgedreht werden (0 None), diesen Tipp hat mir noch Theo gegeben.
// NTP Sync every hour at x:0:10
if (rtcTime.Minute == 0) {
if ((rtcTime.Second > 57) && !ntpsync) {
ntpsync = 1;
wer es testen will, hier statt "9" einfach "57" einsetzen und NTP wird 58 Sekunden nach Neustart synchronisieren.
Habe nun noch mit den readingsGroup und average etwas experimentiert und die POW sind nun schon sehr anschaulich. Das Wiki wurde auch entsprechend erweitert.
LG
vor ein par Stunden hat Theo die Version 2.0.11 mit folgenden Änderungen hochgeladen.
Fix NTP sync and Power thresholds
2.0.11 20161111
* Rewrite button and web toggle code
* Fix NTP sync
* Add HLW calibration commands HLWPCAL, HLWUCAL and HLWICAL (need define
USE_POWERCALIBRATION)
* Fix power threshold tests
d.h. NTP sync ist gefixt und ganz neu ist die Kalibration des HLW, somit kann via MQTT Kommandos nun kalibriert werden. Ich habe mich gleich an meine Pows gemacht und das getestet.
Kalibrierung des HLW Bausteins.
mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWUCAL/set -m "2100" default 1950
mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWICAL/set -m "2450" default 3500
mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWPCAL/set -m "13500" default 12345
mit diesen Pulsfreqeunzen passt es bei Pow1 genau, jedoch der Pow2 weicht leicht davon ab. Gemessen habe ich mit externem Leistungsmesser, die Spannung mit Voltmeter und den Strom berechnet. Dann die Pulsfreqeunzen so lange angepasst bis es gepasst hat. Zwischendurch immer wieder den Status abgefragt.
mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m "8"
Statusabfrage
LG
Hat schon mal jemand das "upgrade by file upload" verwendet? (Anlage)
Wenn ja was ist da vorzubereiten?
Wenn ich nur die compilierte bin auswähle und hochladen will kommt da:
Upload failed --> Upload error code 5
Vermutlich muß ich da noch was einstellen?
Hier https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Compile-and-Upload
steht auf jeden Fall:
Upload image
Since version 1.0.26 you may also use sonoffs web server and upload the file directly.
Billy
Zitat von: Reinhart am 11 November 2016, 21:55:28
Kalibrierung des HLW Bausteins.
Die Spannung mit Voltmeter [b]und den Strom berechnet[/b]. Dann die Pulsfreqeunzen so lange angepasst bis es gepasst hat.
und den Strom berechnet Da war doch was mit reactive power [elec.] cos phi ;)
Zitat von: Billy am 12 November 2016, 14:18:38
Hat schon mal jemand das "upgrade by file upload" verwendet? (Anlage)
Wenn ja was ist da vorzubereiten?
Wenn ich nur die compilierte bin auswähle und hochladen will kommt da:
Upload failed --> Upload error code 5
Vermutlich muß ich da noch was einstellen?
Hier https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Compile-and-Upload
steht auf jeden Fall:
Upload image
Since version 1.0.26 you may also use sonoffs web server and upload the file directly.
Billy
ich mach das ständig so, es kommt aber manchmal vor das sich die Datei nicht hochladen läßt (bei mir error 7), dann hilft entweder ein Neustart oder wenn es gar nicht funktionieren will ein Neustart des Device (Netzstecker ziehen).
// Ota
#if (ARDUINO >= 168)
#define OTA_URL "http://10.0.0.5:80/api/arduino/" PROJECT ".ino.bin"
#else
#define OTA_URL "http://10.0.0.5:80/api/arduino/" PROJECT ".cpp.bin"
#endif
Ich habe auch den Raspberry eingerichtet, du musst das File dann so benennen wie es unter PROJECT (ein paar Zeilen weiter oben = sonoff) definiert wurde. Aber einfacher ist es direkt vom PC zu laden weil das File dann heißen kann wie es will.
LG
Zitat von: Billy am 12 November 2016, 14:55:22
und den Strom berechnet Da war doch was mit reactive power [elec.] cos phi ;)
Den Cos phi kannst du in diesem Fall völlig vergessen (auch U und I) und dient nur zur Anzeige in FHEM, ob Wirk- oder Scheinleistung kannst du damit nicht beeinflussen. Berechnet wird ja vom Baustein HLW8012 selbst, also egal was in U oder I steht oder du damit kalibrierst, wird die Leistung vom Baustein selber kalkuliert!
Entscheidend für die korrekte Leistungsangabe ist nur die Kalibration des HLWPCAL. Ich habe nur deshalb gerechnet, damit das Ergebnis als logischer erscheint wenn es angezeigt wird.
cmnd/sonoffpow/1/HLWPCAL/set -m "13500"
Aber du kannst das gerne austesten und eine Spannung von 10V einstellen und schauen ob sich dann die Leistungsanzeige ändert!
Aber wie gesagt, man muss nicht kalibrieren wenn an mit dem Ergebniss so zufrieden ist!
LG
Da gibt es eine schöne Beschreibung der HLW8012 Funktionen.
http://tinkerman.cat/hlw8012-ic-new-sonoff-pow/
und hier Detailbeschreibung Sonoff Pow
http://tinkerman.cat/the-sonoff-pow/
Billy
@Billy
ja, Danke, die Beiträge kenne ich, habe mir ja auch alles zusammen getragen was den HLW8012 betrifft, damit ich seine Funktionen kennen lerne.
kannst du nun schon OTA flashen, oder gibt es noch Probleme ?
LG
"upgrade by file upload" geht bei mir nicht.
Vielleicht sollte ich mal Theo fragen?
Billy
was mir bei deinem Bild auffällt, du hast da deutsch mit englisch vermischt. Läuft da ein Chrome Translator?
Bei mir sieht das so aus, versuche mal den Übersetzer abzuschalten.
Aber Theo kannst ruhig fragen, der antwortet schnell. Er baut auch noch einiges um was er laut Source angekündigt hat. Mein Hauptrouter wird täglich automatisch rebootet, das möchte er auch noch kompensieren damit die Verbindung zum Sonoff auch ausfallen darf ohne das die Devices rebooten.
PS: ich habe jetzt mit mehren Browsern versucht zu flashen und geht eigentlich mit jedem. Meist nehme ich IE11.
LG
was mir noch eingefallen ist, du kannst die OTA URL auch in der Commandozeile des Webif setzen.
otaurl http://192.168.0.1:80/images/sonoff.ino.generic.bin
Beispiel, wenn dein Server 192.168.0.1 ist und dort ein Verzeichnis mit /images liegt.
oder nur auslesen mit "otaurl".
LG
@Billy
nachdem du nun von Theo die Antwort bekommen hast, wissen wir nun auch was die Fehlermeldungen bedeuten.
5 = upload write buffer miscompare
7 = upload abort
Make sure sonoff has a good wifi connection and you used the correst SPIFFS size 64k
Die SPIFFS Größe ist ohnehin Voraussetzung und eine gute WIFI Verbindung wird ebenfalls vorausgesetzt. Das könnte so ziemlich genau passen, denn bei einem POW habe ich RSSI 46% (2 Stockwerke höher) und beim zweiten 78%. Bei dem schwächeren gibt es ab und zu Probleme beim OTA ( error 7 ) , sodaß ich vor dem Flashen rebooten muss, dann läuft es allerdings sauber durch.
LG
Gestern ist noch die neue Version 2.0.13 hochgeladen worden, aber seit der 2.0.11 ist bei meinen POW ohnehin alles stabil.
Ich habe die beiden POW noch in die Tabletui eingebunden, so habe ich nun auch am Tablet eine Übersicht der beiden POWs und ist die ideale Ergänzung zum gesamt Strom-und Gasverbrauch.
LG
Erst einmal vielen Dank für die Anleitung.
Ich würde aber gerne ESPEasy verwenden. Weiß jemand ob an der Unterstützung der sonoffpow Module bereits gearbeitet wird?
Ich bevorzuge normalerweise auch ESPEasy weil es sehr flexibel ist, aber in dem Fall sonoff POW bleibt vorerst nur der Weg über MQTT. Theo sein Sketch ist außerdem genau auf die sonoff Module zugeschnitten und hat keinen unnötigen Ballast mit an Board.
Einer der größten Vorteile ist auch die lokale Taste an den Modulen, welche Theo komplett unterstützt und an der Software nichts daran gemacht werden muss, die funktioniert auch ohne Rules. Der Taster ist bei Arends sogar mit 7 Funktionen belegt. Ebenso ist eine Console eingebaut, welche die Fehlersuche sehr erleichtert. Die Befehlseingabe ist zwar bei ESPEasy auch möglich, ist hier aber viel besser umgesetzt, vor allem was Logging betrifft.
MQTT wird von FHEM genau so gut unterstützt wie die ESPEasy-Bridge und ist leichter zu debuggen.
Aber mich wundert es auch, dass das ESPEasy Team noch keine Implementierung durchgeführt hat, da ja die Sourcen von Shenzhen Heli Technology schon bekannt sind, zumindest bei Arends. Aber das Spiel geht ja noch weiter, die Touch Module sollten ja auch einmal laufen und da ist kein esp8266 vorhanden.
LG
Zitat von: Reinhart am 17 November 2016, 21:36:17
MQTT wird von FHEM genau so gut unterstützt wie die ESPEasy-Bridge und ist leichter zu debuggen.
Wieso empfindest Du das Debuggen des MQTT Moduls als einfacher?
Zitat von: dev0 am 18 November 2016, 11:06:08
Wieso empfindest Du das Debuggen des MQTT Moduls als einfacher?
weil ich hier den Broker als Zwischenstation habe und schon vor FHEM schauen kann was an Daten ankommt, somit geht's damit einfacher.
LG
Reinhart
Ich habe heute meinen ersten sonoff Slampher geflasht. Es ist zwar ein feiner Lötkolben erforderlich weil man den 8266 erst in den Flashmodus bringen muss (R20 auf Masse legen), weil der Taster ist anderwärtig angesteuert. Der Rest ist gleich wie bei den anderen sonoff Produkten.
Übrigens die POW Module sind wieder lieferbar, habe soeben noch 2 bestellt!
LG
Ich habe mir auch einen Sonoff Pow zugelegt. Flashen hat auch geklappt und die Anbindung an FHEM über MQTT. Ich habe nur das Problem das die Daten unter tele/sonoff reinlaufen und nicht unter sonoffpow:
17:48:35 MQTT: tele/sonoff/CURRENT_POWER = 26
17:48:35 MQTT: tele/sonoff/POWER_FACTOR = 0.99
17:48:35 MQTT: tele/sonoff/VOLTAGE = 216
17:48:35 MQTT: tele/sonoff/CURRENT = 0.123
17:48:35 MQTT: tele/sonoff/TIME = 2016-11-21T17:48:35
17:53:46 MQTT: tele/sonoff/LIGHT = ON
17:53:46 MQTT: tele/sonoff/UPTIME = 0
17:53:46 MQTT: tele/sonoff/RSSI = 100
17:53:46 MQTT: tele/sonoff/YESTERDAY_ENERGY = 0.000
17:53:46 MQTT: tele/sonoff/TODAY_ENERGY = 0.050
17:53:46 MQTT: tele/sonoff/PERIOD_ENERGY = 2
17:53:46 MQTT: tele/sonoff/CURRENT_POWER = 26
17:53:46 MQTT: tele/sonoff/POWER_FACTOR = 1.00
17:53:46 MQTT: tele/sonoff/VOLTAGE = 212
17:53:46 MQTT: tele/sonoff/CURRENT = 0.122
17:53:46 MQTT: tele/sonoff/TIME = 2016-11-21T17:53:46
In Ardruino habe ich folgende Einstellungen:
//#define MODULE SONOFF // Sonoff, Sonoff SV, Sonoff Dual, Sonoff TH 10A/16A, S20 Smart Socket, 4 Channel
#define MODULE SONOFF_POW // Sonoff Pow
//#define MODULE ELECTRO_DRAGON // Electro Dragon Wifi IoT Relay Board Based on ESP8266
#define PROJECT "sonoffpow" // PROJECT is used as the default topic delimiter and OTA file name
// As an IDE restriction it needs to be the same as the main .ino file
was ist daran falsch bzw warum wird es falsch gesetzt?
Welche Einstellung muß ich für einen 2 Sonoff Pow vornehmen? (sonoffpow2).
Gruß
Ulrich
Wenn du die Topics entsprechen einstellst müsste das so gehen wie du willst.
Topic (sonoff) --> sonoff_pow1 für den ersten --> 20:14:22 MQTT: tele/sonoff_pow1/TIME = 2016-11-21T20:14:22
Topic (sonoff) --> sonoff_pow2 für den zweiten
Client Id (sonoff_x) --> würde ich auch so benennen. ( So mach ich das wegen der Übersichtlichkeit.)
Billy
Hallo Billy,
ja so würde ich das auch gerne machen. Leider funktioniert bei mir ja schon "sonoffpow" nicht.
Wo setzt man denn die Client ID?
ja genau, so ist es.
Ist im Wiki gleich am Anfang des Kapitels POW Software erwähnt und kann unter "Project" eingestellt werden.
#define PROJECT "sonoffpow" // PROJECT is used as the default topic delimiter and OTA file name
Wenn das vor dem compilieren übersehen wurde macht es auch nichts, dann halt im Menü unter MQTT (Topic) einstellen.
Auch die Client ID kann hier eingestellt werden.
LG
Hallo Reinhart,
danke für die Anwort,
mit der Einstellung aus dem Wiki klapps bei mir nicht.
Die 2 Variante hat sofort funktioniert.
Ulrich
meinst du "define Project" klappt nicht?
LG
noch was wichtiges, die meisten der Settings werden beim Neuflashen NICHT überschrieben,d.h wenn einmal was falsches drinnen steht, steht es nach dem nächsten Flashen immer noch dort.
Das hat aber den Vorteil, das die gesamten WIFI Settings nicht immer überschrieben werden! Genau so ist es mit Project, das gibt nur den neuen "Default" vor (der Text in Feld darüber), überschreibt aber nicht den alten Wert!
Schau im Bild darüber, da steht neben dem Feld "Topic" in Klammer (sonoffpow) und darunter die echte Topic "sonoffpow2".
LG
gelöscht.
@Reinhart
Wenn ich am Sonoff POW z.B. eine Lampe schalte, dann werden die Daten sofort im Sonoff WEB angezeigt. z.B.
--------------------------------------------
Voltage: 224 V
Current: 0.454 A
Power: 103 W
Power Factor: 1.00
Energy Today: 0.049 kWh
Energy Yesterday: 0.000 kWh
--------------------------------------------
In FHEM kommen die Daten bei mir verzögert abhängig vom eingestellten TelePeriod an.
Hast du schon eine Möglichkeit gefunden, dass die Daten beim Schalten zeitnah in FHEM ankommen?
Billy
Zitat von: Billy am 13 Januar 2017, 16:10:15
@Reinhart
Wenn ich am Sonoff POW z.B. eine Lampe schalte, dann werden die Daten sofort im Sonoff WEB angezeigt. z.B.
--------------------------------------------
Voltage: 224 V
Current: 0.454 A
Power: 103 W
Power Factor: 1.00
Energy Today: 0.049 kWh
Energy Yesterday: 0.000 kWh
--------------------------------------------
In FHEM kommen die Daten bei mir verzögert abhängig vom eingestellten TelePeriod an.
Hast du schon eine Möglichkeit gefunden, dass die Daten beim Schalten zeitnah in FHEM ankommen?
Billy
Mit welcher Firmware hast du den SONOFF betankt Billy?
Zitat von: P.A.Trick am 13 Januar 2017, 17:12:00
Mit welcher Firmware hast du den SONOFF betankt Billy?
Mit Sonoff by Theo Arends Version 3.1.6
Billy
so richtig habe ich in dieser Richtung noch nichts gefunden, da alle Messwerte ja als Telemetriedaten übertragen werden und da ist rein die "Telemetric period" entscheidend was da eingestellt ist. Ich habe es auf 5 Minuten eingestellt, was dann im schlimmsten Fall sicherlich lange dauert und dem Begriff zeitnah nicht gerecht wird.
In der Webgui werden die Daten ja so alle 2 Sekunden refresht, dass ist sehr schnell. Bei meinen ersten Test war ich auf 30 Sekunden, aber wenn du die Daten in eine DB legst wird das halt sehr viel. Zumindest stört man nicht den Funkverkehr damit.
Man müsste mal in der Source schauen wenn ein Schaltvorgang ausgelöst wird, dass man dann ein paar Sekunden später die Telemetrie anstößt. Bei so Spielereien wie "Waschmaschine ist fertig" sollten 2 Minuten noch ausreichend sein.
Received PUBLISH (d0, q0, r0, m0, 'cmnd/sonoffpow/1/status/set', ... (1 bytes))
cmnd/sonoffpow/1/status/set 8
Received PUBLISH (d0, q0, r0, m0, 'tele/sonoffpow/RESULT', ... (78 bytes))
tele/sonoffpow/RESULT PWR: Voltage 228 V, Current 0.477 A, Power 119 W, Today 0.935 kWh, Factor 1.00
man könnte sich aber auch auf Fhem Seite was basteln und nach einem Schaltvorgang mit "cmnd/sonoffpow/1/status/set -m "8" den Status abfragen. Das Ergebnis muss man dann aber auch filtern und passt so gar nicht zu den üblichen Meldungen.
LG
Zitat von: Reinhart am 13 Januar 2017, 18:38:47
so richtig habe ich in dieser Richtung noch nichts gefunden, da alle Messwerte ja als Telemetriedaten übertragen werden und da ist rein die "Telemetric period" entscheidend was da eingestellt ist. Ich habe es auf 5 Minuten eingestellt, was dann im schlimmsten Fall sicherlich lange dauert und dem Begriff zeitnah nicht gerecht wird.
In der Webgui werden die Daten ja so alle 2 Sekunden refresht, dass ist sehr schnell. Bei meinen ersten Test war ich auf 30 Sekunden, aber wenn du die Daten in eine DB legst wird das halt sehr viel. Zumindest stört man nicht den Funkverkehr damit.
Man müsste mal in der Source schauen wenn ein Schaltvorgang ausgelöst wird, dass man dann ein paar Sekunden später die Telemetrie anstößt. Bei so Spielereien wie "Waschmaschine ist fertig" sollten 2 Minuten noch ausreichend sein.
Das waren auch meine Überlegungen.
Du könntest ja auch Theo um ein "Enhancement" ansprechen, das nach einem power "ON/OFF" den Telemetriekanal triggert!
Dann braucht man sonst nichts ändern. Das wäre aus meiner Sicht die beste Lösung.
Gruß
Billy
ja das wäre ohnehin das Beste, sonst muss man bei zukünftigen Versionen ständig umbauen.
Habe an Theo die Anfrage #236 gestellt. Habe auch #221 als enhancement für den 4CH aufgemacht.
LG
Super, danke.
Billy
Hallo zusammen,
ich habe jetzt mehrere neue Sonoff Pow Module und diese beschickt mit dem Strech 3.2.10. Hat auch funktioniert aber mit dem einbinden unter FHEM habe ich Probleme. Die im Wiki angegebenen Readings funktionieren so nicht. In der Console des Sonoff bekomme ich folgenede Meldungen:
14:27:35 MQTT: tele/sonoff_pow2/RESULT = {"Info1":{"AppName":"Sonoff Pow Module", "Version":"3.2.10", "FallbackTopic":"DVES_E8A6D0", "GroupTopic":"pows"}}
14:27:35 MQTT: tele/sonoff_pow2/RESULT = {"Info2":{"WebserverMode":"Admin", "Hostname":"sonoff_pow2-1744", "IPaddress":"192.168.188.48"}}
14:27:36 MQTT: stat/sonoff_pow2/RESULT = {"POWER":"ON"}
14:27:36 MQTT: stat/sonoff_pow2/POWER = ON
14:27:43 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:27:43", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"upwvg", "RSSI":100}}
14:27:43 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:27:43", "Energy":{"Yesterday":"0.000", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":217, "Current":"0.000"}}
14:30:31 MQTT: stat/sonoff_pow2/RESULT = {"POWER":"OFF"}
14:30:31 MQTT: stat/sonoff_pow2/POWER = OFF
14:30:38 MQTT: stat/sonoff_pow2/RESULT = {"POWER":"ON"}
14:30:38 MQTT: stat/sonoff_pow2/POWER = ON
14:32:45 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:32:45", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"upwvg", "RSSI":98}}
14:32:45 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:32:45", "Energy":{"Yesterday":"0.000", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":217, "Current":"0.000"}}
14:37:59 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:37:59", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"upwvg", "RSSI":100}}
14:37:59 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:37:59", "Energy":{"Yesterday":"0.000", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":217, "Current":"0.000"}}
14:43:12 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:43:11", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"upwvg", "RSSI":98}}
14:43:12 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:43:12", "Energy":{"Yesterday":"0.000", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":217, "Current":"0.000"}}
14:48:19 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:48:19", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"upwvg", "RSSI":100}}
14:48:19 MQTT: tele/sonoff_pow2/TELEMETRY = {"Time":"2017-01-26T14:48:19", "Energy":{"Yesterday":"0.000", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":217, "Current":"0.000"}}
wie bekomme ich die denn in Readings angezeigt. Gibt es dafür schon eine Anleitung?
Gruß Ulrich
Hallo zusammen,
habe die Lösung gerade gefunden. Man muß das Messageformat auf Legacy stellen. Dies funktioniert in der Console mit dem Befehl:
cmnd/sonoff_pow2/MessageFormat 0
Danach waren die Werte wieder wie vorher und die Readings konnte ich anhand des Wiki anlegen.
16:28:34 MQTT: tele/sonoff_pow2/RSSI = 100 %
16:28:34 MQTT: tele/sonoff_pow2/YESTERDAY_ENERGY = 0.000 kWh
16:28:34 MQTT: tele/sonoff_pow2/TODAY_ENERGY = 0.000 kWh
16:28:34 MQTT: tele/sonoff_pow2/PERIOD_ENERGY = 0 Wh
16:28:34 MQTT: tele/sonoff_pow2/CURRENT_POWER = 0 W
16:28:34 MQTT: tele/sonoff_pow2/POWER_FACTOR = 0.00
16:28:34 MQTT: tele/sonoff_pow2/VOLTAGE = 217 V
16:28:34 MQTT: tele/sonoff_pow2/CURRENT = 0.000 A
16:28:34 MQTT: tele/sonoff_pow2/TIME = 2017-01-26T16:28:34
Auch zu schalten habe ich entgegen Wiki folgenden Eintrag gemacht:
publishSet ON OFF cmnd/sonoff_pow2/Light
Gruß Ulrich
Danke für die Hinweise, aber mit dem Wiki das ist nicht einfach, da ich ständig die Beispiele ändern müsste weil Theo die Software oft bis zu 10x pro Woche umstellt.
* 3.0.0 20161208
* Migrate and clean-up flash layout
* Settings from version 2.x are saved but settings from version 3.x can not be used with version 2.x
* Change SEND_TELEMETRY_RSSI to SEND_TELEMETRY_WIFI and add AP and SSID to telemetry
* Split long JSON messages
* Fix inconsistent status messages
* Fix all status messages to return JSON if enabled
* Remove relay index in cmnd/sonoff/<relay>/POWER now changed
* to cmnd/sonoff/POWER for single relay units
* and cmnd/sonoff/POWER<relay> for multi relay units like Sonoff dual
* Add retain option to Power/Light status controlled by command PowerRetain On|Off (#126)
Die von dir erwähnte Umstellung erfolgte mit der Umstellung auf 3.0.0. Ist aber eine reine kosmetische Sache, den der Sendebefehl funktioniert auch noch mit der im Wiki geposteten Methode ( die /1/ ).
Auf Legacy wurde erst mit der Version 3.2.8 umgestellt, keine Ahnung ob er das läßt. Ich schaue ohnehin immer in die "user_config.h" weil ich hier alle persönlichen Einstellungen (IP, Namen, Wlan) vornehme.
#define MESSAGE_FORMAT JSON // [MessageFormat] MQTT Message Format (LEGACY or JSON)
#define MQTT_STATUS_OFF "OFF" // Command or Status result when turned off (needs to be a string like "0" or "Off")
#define MQTT_STATUS_ON "ON" // Command or Status result when turned on (needs to be a string like "1" or "On")
#define MQTT_CMND_TOGGLE "TOGGLE" // Command to send when toggling (needs to be a string like "2" or "Toggle")
Hier die besagte Umstellung auf "JSON". Soeben ist die 3.2.12 erschienen und hier ist Default auch JSON. Wenn das so bleibt, werde ich das im Wiki hinweisen, das sich die Beispiele alle auf LEGACY beziehen.
LG
so, Aufgrund der doch vielen Änderungen in den Versionen nutze ich jetzt die "user_config_override.h". Diese Einstellungen überschreiben die Flash Settings.
Einfach Abfragen ob der entsprechende "Define" vorhanden ist und wenn ja dann löschen und neu definieren.
#ifdef STA_SSID1
#undef STA_SSID1
#endif
#define STA_SSID1 "ssid1" // [Ssid1] Wifi SSID
#ifdef STA_PASS1
#undef STA_PASS1
#endif
#define STA_PASS1 "pass1" // [Password1] Wifi password
#ifdef STA_SSID2
#undef STA_SSID2
#endif
#define STA_SSID2 "ssid2" // [Ssid2] Optional alternate AP Wifi SSID
#ifdef STA_PASS2
#undef STA_PASS2
#endif
#define STA_PASS2 "pass2"
#ifdef MESSAGE_FORMAT
#undef MESSAGE_FORMAT
#endif
#define MESSAGE_FORMAT LEGACY
#ifdef SYS_LOG_HOST
#undef SYS_LOG_HOST
#endif
#define SYS_LOG_HOST "IP-Broker"
Die Datei einfach zur aktuellen Version ins Verzeichnis kopieren und alle persönlichen Einstellungen werden übernommen. Das sind nur ein paar Beispiele, man kann die Datei natürlich noch erweitern.
LG
Reinhart
Gibt es schon was neues bezüglich Sonoff Pow und espeasy? Oder muss ich mich mit MQTT anfreunden?
ich habe noch nichts gehört das eine Unterstützung geplant ist, aber MQTT ist eine Sache auf ein paar Minuten.
LG
Habe es auch teilweise am laufen, zumindest kann ich ein und ausschalten aber sehe keine anderen werte..
mosquitto_sub -d -v -t \#
liefert mir leider auch nur on und off werte..
Program version 3.2.13
hast du vor dem compilieren das Modul in der user_config.h eingestellt?
#define MODULE SONOFF_POW
siehe Wiki :https://wiki.fhem.de/wiki/Sonoff#Sonoff_POW_Software (https://wiki.fhem.de/wiki/Sonoff#Sonoff_POW_Software)
sollte so aussehen:
// Enable only one out of five MODULE defines below
//#define MODULE SONOFF // Sonoff Basic, Sonoff RF, Sonoff SV, Sonoff Dual, Sonoff TH, S20 Smart Socket
//#define MODULE SONOFF_2 // Sonoff Touch, Sonoff 4CH
#define MODULE SONOFF_POW // Sonoff Pow
//#define MODULE MOTOR_CAC // iTead Motor Clockwise/Anticlockwise
//#define MODULE ELECTRO_DRAGON // Electro Dragon Wifi IoT Relay Board Based on ESP8266
und ebenso den Abschnitt POW checken
/*********************************************************************************************\
* Sonoff Pow
*
* >>> Select Board "Generic ESP8266 Module" and Flash Size "1M (64K SPIFFS)" or "4M (1M SPIFFS)" <<<
\*********************************************************************************************/
#elif MODULE == SONOFF_POW // programming header 1:3.3V 2:rx 3:tx 4:gnd
#define APP_NAME "Sonoff Pow Module"
#define MQTT_GRPTOPIC "pows" // [GroupTopic] MQTT Group topic
#define USE_POWERMONITOR // Enable Power Monitoring
#define USE_POWERCALIBRATION // Enable setting Calibration parameters by user commands
/*-------------------------------------------------------------------------------------------*/
#define LED_PIN 15 // GPIO 15 = Green Led (0 = On, 1 = Off) - Sonoff
#define LED_INVERTED 0 // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)
#define REL_PIN 12 // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)
#define KEY_PIN 0 // GPIO 00 = Button
/*-------------------------------------------------------------------------------------------*/
#define HLW_SEL 5 // GPIO 05 = HLW8012 Sel output (Sonoff Pow)
#define HLW_CF1 13 // GPIO 13 = HLW8012 CF1 voltage / current (Sonoff Pow)
#define HLW_CF 14 // GPIO 14 = HLW8012 CF power (Sonoff Pow)
#define SEND_TELEMETRY_ENERGY // Enable sending energy telemetry
und umstellen von JSON auf LEGACY
#define MESSAGE_FORMAT LEGACY // [MessageFormat] MQTT Message Format (LEGACY or JSON)
#define MQTT_STATUS_OFF "OFF" // Command or Status result when turned off (needs to be a string like "0" or "Off")
#define MQTT_STATUS_ON "ON" // Command or Status result when turned on (needs to be a string like "1" or "On")
#define MQTT_CMND_TOGGLE "TOGGLE" // Command to send when toggling (needs to be a string like "2" or "Toggle")
LG
ich habe die fertige *.bin von dir genommen.
wie kann ich die Datei anpassen?
oder gehört die zu FHEM?
die bin ist uralt, nimm die letzte von Arends!
außerdem solltest du ja auch die WIFI Daten gleich eingeben, dann kannst du sofort connecten!
LG
Hast du zufällig einen link zur hand?
https://github.com/arendst/Sonoff-MQTT-OTA-Arduino.git (https://github.com/arendst/Sonoff-MQTT-OTA-Arduino.git)
LG
Danke, kann ich das per Ota einspielen?
- habe es drauf aber keine Änderung :(
- mit Arduino habe so noch nicht gearbeitet...
ja, mit OTA ist das dann kein Problem!
Die Bedienung mit Arduino ist relativ einfach, solltest dich aber damit auseinander setzen. Wenn du alle Parameter richtig eingestellt hast, dann gehst auf "Sketch" und "Compilierte Binärdatei exportieren", dann wird die BIN in dem Verzeichnis "sonoff" erstellt.
LG
bei Arduino bekomme ich eine Fehlermeldung beim kompilieren
Arduino: 1.8.1 (Mac OS X), Board: "Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 1M (128K SPIFFS), ck, Disabled, None"
Build-Optionen wurden verändert, alles wird neu kompiliert
/Users/SamNitro/Downloads/Sonoff-MQTT-OTA-Arduino-master 2/sonoff/sonoff.ino:139:52: fatal error: PubSubClient.h: No such file or directory
#include <PubSubClient.h> // MQTT
^
compilation terminated.
exit status 1
Fehler beim Kompilieren für das Board Generic ESP8266 Module.
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
vermutlich fehlt die PubSubClient Library ;)
mach so wie im Wiki beschrieben, gehe in den Boardverwalter und installiere ESP8266!
und diese Einstellung ist auch falsch!
80 MHz, 40MHz, DIO, 115200, 1M (128K SPIFFS),
QIO und 1M und 64k SPIFFS
LG
Zitat von: PeMue am 28 Januar 2017, 19:37:14
vermutlich fehlt die PubSubClient Library ;)
Danke das war es :)
wieder einen schritt weiter..
Jetzt nur noch die Daten in fhem einbinden
wenn alle Libraries installiert sind, sollten die unter Windows im Verzeichnis \Dokumente\Arduino\libraries sichtbar sein. Bei deinem Fehler geht es um die "pubsubclient".
LG
ich habe die schon gefunden und geflachst.. ich arbeite mit OSX
Internals:
IODev Mosquitto
NAME sonoff_pow
NR 308
STATE ON
TYPE MQTT_DEVICE
qos 0
retain 0
Readings:
2017-01-28 18:18:19 Power ON
2017-01-28 18:59:10 state OFF
2017-01-28 19:54:24 transmission-state subscription acknowledged
Message_ids:
Publishsets:
:
topic cmnd/sonoff_pow/1/POWER/set
values:
ON
OFF
Sets:
OFF
ON
subscribe:
tele/sonoff_pow/POWER
cmnd/sonoff_pow/1/POWER/set
tele/sonoff_pow/TODAY_ENERGY
tele/sonoff_pow/PERIOD_ENERGY
tele/sonoff_pow/CURRENT_POWER
tele/sonoff_pow/VOLTAGE
tele/sonoff_pow/CURRENT
stat/sonoff_pow/1/STATUS
tele/sonoff_pow/TELEMETRY
subscribeExpr:
^tele\/sonoff_pow\/POWER$
^cmnd\/sonoff_pow\/1\/POWER\/set$
^tele\/sonoff_pow\/TODAY_ENERGY$
^tele\/sonoff_pow\/PERIOD_ENERGY$
^tele\/sonoff_pow\/CURRENT_POWER$
^tele\/sonoff_pow\/VOLTAGE$
^tele\/sonoff_pow\/CURRENT$
^stat\/sonoff_pow\/1\/STATUS$
^tele\/sonoff_pow\/TELEMETRY$
Subscribereadings:
cmnd/sonoff_pow/1/POWER/set state
stat/sonoff_pow/1/STATUS AKTUELL
tele/sonoff_pow/CURRENT CURRENT
tele/sonoff_pow/CURRENT_POWER CURRENT_POWER
tele/sonoff_pow/PERIOD_ENERGY PERIOD_ENERGY
tele/sonoff_pow/POWER Power
tele/sonoff_pow/TELEMETRY TELE
tele/sonoff_pow/TODAY_ENERGY TODAY_ENERGY
tele/sonoff_pow/VOLTAGE VOLTAGE
Attributes:
IODev Mosquitto
publishSet ON OFF cmnd/sonoff_pow/1/POWER/set
stateFormat Power
subscribeReading_AKTUELL stat/sonoff_pow/1/STATUS
subscribeReading_CURRENT tele/sonoff_pow/CURRENT
subscribeReading_CURRENT_POWER tele/sonoff_pow/CURRENT_POWER
subscribeReading_PERIOD_ENERGY tele/sonoff_pow/PERIOD_ENERGY
subscribeReading_Power tele/sonoff_pow/POWER
subscribeReading_TELE tele/sonoff_pow/TELEMETRY
subscribeReading_TODAY_ENERGY tele/sonoff_pow/TODAY_ENERGY
subscribeReading_VOLTAGE tele/sonoff_pow/VOLTAGE
subscribeReading_state cmnd/sonoff_pow/1/POWER/set
webCmd ON:OFF
habe mal alles rein gepackt was ich finden konnte aber keines der werte liefert mir einen status
ja super, das wars.
Du kannst dir dann den Abschnitt "POW kalibrieren" noch anschauen wenn du genauere Ergebnisse haben willst. Dazu benötigst einen bekannten Verbraucher, etwa eine 100 W Glühbirne.
So wie ich sehe ist die Spannung auch etwas daneben.
LG
ja ich habe ein Messgerät dafür.
aber trotzdem liefert mir weder die Konsole noch fhem die werte..
wenn die Console auch nichts ausgibt, dann ist vermutlich die Telemetrie im Abschnitt POW nicht eingeschaltet.
#define SEND_TELEMETRY_ENERGY // Enable sending energy telemetry
Unter Konfiguration Logging kannst die die Telemetric period in Sekunden einstellen.
LG
bei mir hat er die telemetry zusammengefasst:
aha, du bist im JSON Ausgabeformat, schalte um auf Legacy dann geht's!
gib in der Console ein: messageformat LEGACY
Es läuft :) :) :)
Danke für deine Mühe Zeit und Geduld
welcher wert ist sinnvoll für einen "Telemetric period"
das freut mich wenn es nun läuft, im Prinzip hast oben den Eintrag nicht genau gelesen, da habe ich alle Einstellungen in den Abschnitten erklärt.
Welcher Wert bei Teleperiod sinnvoll ist hängt von der Anwendung ab. Ich habe in den meisten Fällen bei nur Überwachung 300 (= 5 Minuten) eingestellt um die dblog nicht zu überfüllen. Zum Testen kannst aber auch auf 30 herunter gehen. Einfach in der Console "teleperiod 30" eingeben. Mit "help" kannst du alle Kommandos die in der Console möglich sind abrufen.
Sehr nützlich sind auch die Funktionen "PowerLow" und "PowerHigh", welche eine Statusmeldung bei Überschreitung auslösen und du somit einen Event steuern kannst, zB: mit einem Watchdog zeitverzögert "die Waschmaschine ist fertig".
LG
Sehr nützlich sind auch die Funktionen "PowerLow" und "PowerHigh", welche eine Statusmeldung bei Überschreitung auslösen und du somit einen Event steuern kannst, zB: mit einem Watchdog zeitverzögert "die Waschmaschine ist fertig".
das kann ich doch auch über ein doif machen oder??
jetzt muss ich doch mal schauen wie ich die werte angepasst bekomme..
mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWUCAL/set -m "2100"
hat leider keine Auswirkung
wenn du schon auf Legacy vergessen hast, nehme ich an du hast auch die Kalibration in der user_config.h nicht eingeschaltet.
https://forum.fhem.de/index.php/topic,60336.msg571620.html#msg571620 (https://forum.fhem.de/index.php/topic,60336.msg571620.html#msg571620)
Das must aber dann neu compilieren.
#define USE_POWERCALIBRATION // Enable setting Calibration parameters by user commands
LG
bin endlich fertig :)
ist alles schwierig wenn man es zum ersten mal macht, vor allem mit Arduino.
Danke Vielmals
Arduino ist eigentlich nicht weiter schwierig, es sind nur wenige Punkte die man beachten muß (Libraries, Board, Flash Modes)
Aber in der user_config.h gibt es einige Einstellungen die man beachten muß, dies ist auch der wesentliche Unterschied zu ESPEasy.
Bei ESPEasy wird einfach compiliert und die Einstellungen werden nachher im Webif durchgeführt. Der Arends Sketch ist ja ganz spezifisch auf die Sonoff Module abgestimmt, daher müssen hier vorher einige Settings durchgeführt werden. Woher soll die Software wissen, für welches Modul es ist. Das Problem ist ja die unterschiedliche Hardware, weil Sonoff hier verschiedene Bausteine verbaut (8266, 8285, HWL8012) und ansteuert. Einige Einstellungen (Parameter) lassen sich bei Arends ja dann auch direkt in der Konsole setzen.
Aber alle Einstellungen über die wir hier geschrieben haben, sind im WIKI angeführt und erklärt! Das Problem im WIKI ist, dass es schon zu viele Kapitel sind die dann keiner mehr "genau" liest, auf der anderen Seite wird dann aber schnell bemängelt das es nicht im WIKI beschrieben ist.
Alle Beispiele die im Wiki beschrieben worden sind, habe ich ja lokal auf meinem System laufen und getestet. Das Problem ist aber, dass die Software ständig weiter entwickelt wird und somit nach einiger Zeit auch Abweichungen auftreten können. Ich teste fast alle Versionen von Arends und passe bei wesentlichen Änderungen das Wiki an. Ebenso informiere ich Theo wenn ich Fehler oder Wünsche habe.
Aber du hast schon recht, es ist noch kein Meister vom Himmel gefallen. Nur jetzt wirst du dir bei der Einrichtung eines POW nichts mehr dabei denken. Der POW ist ja ein sehr komplexes Modul was das compilieren und die Einrichtung betrifft.
Ich kann nur allen Neueinsteigern bei Sonoff empfehlen, zunächst das Wiki lesen und dann die "user_config.h" einmal genau zu durchforsten, es wird dann einiges schon im Vorfeld klarer. Die ESPEasy Bridge von dev0 nimmt ja den Usern einiges an Arbeit ab, aber ohne zu lesen geht es auch hier nicht und so Features wie "Wall Switch" müssen dann in ESPEASY erst durch Rules nachgebildet werden.
Ich habe beide Systeme im Einsatz, weil jedes seine speziellen Eigenschaften hat. Es funktioniert aber auch die Originalsoftware von Itead sehr gut, für Leute die kein Fhem haben oder wollen. Die Grundfunktionen können sofort alle vom Handy aus gesteuert werden.
LG
Ich habe ja nach dem WIKI gearbeitet.. mein problem war einfach nur das ich noch nie mit Arduino gearbeitet habe, zuerst habe ich ja die fertige *.bin genommen.
Dann war alles für mich als Neuling vom POW doch recht verwirrend... (evtl wären ein paar screenshots von den Einstellungen einfacher sie zu finden).
Wie du schon sagst, ich habe vorher 2 Geräte mit Espeasy geflasht und da konnte ich alles später einstellen.
hier eine Darstellung meiner 4 POWs mit readingsGroup.
Da bei einem der Gefrierschränke der Thermostat defekt ist (UG), hat FHEM zusätzlich die Steuerung übernommen.
redingsGroup bietet ja den Vorteil, dass man eine schöne farbliche dynamische Darstellung bekommt.
LG
Hallo Reinhart,
coole Darstellung. Könntest Du bitte Deine cfg posten?
Danke + Gruß
Peter
@PeMue
die Schwellen der Farbumschaltung muss du halt auf deine persönlichen Bedürfnisse anpassen. Ich habe hier auch die Commands mit integriert, somit kannst du bequem aus dieser Ansicht auch Ein/Ausschalten.
{ if($READING eq "CURRENT_POWER" && $VALUE >= 0 && $VALUE <= 100){ 'style="color:green;;text-align:right"' }
Beispiel: zwischen einer Leistung von 0-100 Watt ist es grün.
.*(Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3|Sonoff_Pow4):
und hier die ReadingsName von deinen Modul Namen austauschen
define SonoffPows readingsGroup <%measure_power>,<aktuell>,<Tag>,<Gestern>,<Strom>,<Durchschnitt>,<max.P>,<Zyklus>,<Faktor>,<Status>,<hr> .*(Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3|Sonoff_Pow4):CURRENT_POWER,TODAY_ENERGY,YESTERDAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY,POWER_FACTOR,LIGHT
attr SonoffPows commands {'LIGHT.ON' => 'set $DEVICE OFF','LIGHT.OFF' => 'set $DEVICE ON'}
attr SonoffPows mapping %ALIAS
attr SonoffPows nameStyle style="color:yellow"
attr SonoffPows room Energie,MQTT
attr SonoffPows valueFormat {'CURRENT_POWER' =>"%.0f W", 'TODAY_ENERGY' =>"%.2f Kw",'YESTERDAY_ENERGY' =>"%.2f Kw", 'CURRENT' =>"%.2f A",'CURRENT_POWER_max_day' => "%.0f W",'CURRENT_POWER_avg_day' => "%.2f W",'CURRENT_POWER'=>"%.0f W",'POWER_FACTOR' => "%.2f "}
attr SonoffPows valueIcon {'LIGHT.ON' => 'rc_GREEN@green', 'LIGHT.OFF' => 'rc_RED@red'}
attr SonoffPows valueStyle { if($READING eq "CURRENT_POWER" && $VALUE >= 0 && $VALUE <= 100){ 'style="color:green;;text-align:right"' }elsif( $READING eq "CURRENT_POWER" && $VALUE > 100 && $VALUE < 200){ 'style="color:orange;;text-align:right"' }elsif( $READING eq "CURRENT_POWER" && $VALUE >= 200){ 'style="color:red;;text-align:right"' }elsif( $READING eq "TODAY_ENERGY" && $VALUE >= 4.8){ 'style="color:red;;text-align:right"' }elsif( $READING eq "TODAY_ENERGY" && $VALUE <= 2.5){ 'style="color:green;;text-align:right"' }elsif( $READING eq "TODAY_ENERGY" && $VALUE > 2.5 && $VALUE < 4.8 ){ 'style="color:orange;;text-align:right"' }elsif( $READING eq "YESTERDAY_ENERGY" && $VALUE <= 2.5){ 'style="color:green;;text-align:right"' }elsif( $READING eq "YESTERDAY_ENERGY" && $VALUE > 2.5 && $VALUE < 4.8 ){ 'style="color:orange;;text-align:right"' }elsif( $READING eq "YESTERDAY_ENERGY" && $VALUE >= 4.8){ 'style="color:red;;text-align:right"' }elsif( $READING eq "CURRENT" && $VALUE <= 0.45){'style="color:green;;text-align:right"'}elsif( $READING eq "CURRENT" && $VALUE > 0.45 && $VALUE < 0.87 ){'style="color:orange;;text-align:right"' }elsif( $READING eq "CURRENT" && $VALUE >= 0.87){ 'style="color:red;;text-align:right"' }elsif( $READING eq "CURRENT_POWER_avg_day" && $VALUE <= 100){ 'style="color:lightgreen;;text-align:right"' }elsif( $READING eq "CURRENT_POWER_avg_day" && $VALUE > 100 && $VALUE < 200 ){ 'style="color:orange;;text-align:right"' }elsif( $READING eq "CURRENT_POWER_avg_day" && $VALUE >= 200){ 'style="color:red;;text-align:right"' }elsif( $READING eq "PERIOD_ENERGY" && $VALUE <= 10){ 'style="color:lightgreen;;text-align:right"' }elsif( $READING eq "PERIOD_ENERGY" && $VALUE > 10 && $VALUE < 15 ){ 'style="color:orange;;text-align:right"' }elsif( $READING eq "PERIOD_ENERGY" && $VALUE >= 15){ 'style="color:red;;text-align:right"' }elsif( $READING eq "CURRENT_POWER_max_day" && $VALUE <= 100){ 'style="color:lightgreen;;text-align:right"' }elsif( $READING eq "CURRENT_POWER_max_day" && $VALUE > 100 && $VALUE < 200 ){ 'style="color:orange;;text-align:right"' }elsif( $READING eq "CURRENT_POWER_max_day" && $VALUE >= 200){ 'style="color:red;;text-align:right"' } }
Die Durchschnittswerte habe ich hier noch zusätzlich mit average ausgewertet, dann erhälst du noch zusätzlich die im Bild dargestellten Readings. CURRENT_POWER_xxxxx
define Sonoff_Pow_CURRENT_POWER average Sonoff_Pow:CURRENT_POWER.*
define Sonoff_Pow2_CURRENT_POWER average Sonoff_Pow2:CURRENT_POWER.*
define Sonoff_Pow3_CURRENT_POWER average Sonoff_Pow3:CURRENT_POWER.*
define Sonoff_Pow4_CURRENT_POWER average Sonoff_Pow4:CURRENT_POWER.*
LG
Reinhart
Hallo,
ich bekomme nächste Woche meine POWs. Wie ist das, wenn nach einem Stromausfall der Strom wiederkehrt, geht der POW wieder in den Ursprungs-zustand?
Wäre ja z.B. bei einem Kühlschrank oder Gefrierschrank wichtig.
Grüße
Olli
Hallo,
zuerst mal ein großes Lob an ALLE, die hier an dieser tollen Lösung mitgewirkt haben.
Ich habe auf die Software Version 3.9.11 20170204 (Tasmato)umgestellt.
Das Platformio Package runter geladen,
userconfig.h meine WiFi Daten angepasst,
compiliert und aufs Sonoff Pow runtergeladen
alles Super gelaufen, läuft, lässt sich einstellen,
MQTT subscribes auf das neue Format angepasst,
FHEM kommt alles an und lässt sich auch schalten.
Ab Version 3.9 haben sich die MQTT Topic's verändert z.B.
von:
CURRENT 0.000 2017-02-05 18:33:46
auf:
ENERGY
{"Time":"2017-02-06T02:14:52", "Yesterday":"0.424", "Today":"0.145", "Period":0, "Power":0, "Factor":"0.00", "Voltage":227, "Current":"0.000"}
Meine Frage ist,
wie bekomme ich den String in den Geschweiften Klammern, in FHEM zerlegt, damit ich z.B. Current auswerten / weiter verarbeiten kann.
Für einen Hinweis wäre Ich dankbar.
Grüße aus Berlin sendet der Mickbaer.
Zitat von: octek0815 am 05 Februar 2017, 21:48:16
ich bekomme nächste Woche meine POWs. Wie ist das, wenn nach einem Stromausfall der Strom wiederkehrt, geht der POW wieder in den Ursprungs-zustand?
Wäre ja z.B. bei einem Kühlschrank oder Gefrierschrank wichtig.
genau diese Anwendung habe ich auch, ich steuere sogar weil das Thermostat defekt ist und der POW kehrt nach Stromausfall wieder in den letzten Zustand zurück!
@Mickbaer
umstellen auf "
LEGACY"! (Consoleneingabe:
messageformat legacy)
hier der Ausschnitt aus dem Wiki, ist dort erwähnt:
In neueren Versionen (ab 3.2.8) wurde auch das Ausgabeformat von LEGACY auf JSON geändert. Gegebenenfalls ist auch hier auf LEGACY zu ändern, da alle Beispiele nur mit "LEGACY" funktionieren.
Die Topics haben sich nicht verändert, aber in JSON ist alles in einem String verpackt!
LG
Zitat von: Reinhart am 06 Februar 2017, 09:30:58
@Mickbaer
umstellen auf "LEGACY"! (Consoleneingabe: messageformat legacy)
LG
In arendst/Sonoff-Tasmota gibt es so wie ich es sehe das Command MessageFormat nicht mehr!
Zumindest kann ich es nicht hier finden.
https://github.com/arendst/Sonoff-Tasmota/wiki/Commands
Billy
#define MQTT_BUTTON_RETAIN 0 // [ButtonRetain] Button may send retain flag (0 = off, 1 = on)
#define MQTT_POWER_RETAIN 0 // [PowerRetain] Power status message may send retain flag (0 = off, 1 = on)
#define MQTT_SWITCH_RETAIN 0 // [SwitchRetain] Switch may send retain flag (0 = off, 1 = on)
ich glaube es sind die hier in dem neuen sketch aber ungetestet...
Hallo,
ich habe die Version
Sonoff Pow Module
Sonoffpow
Program Version 3.9.11
Build Date/Time Feb 5 2017/14:54:39
Core/SDK Version 2_3_0/1.5.3(aec24ac9)
installiert.
Wie Billy schon bemerkt hat, gibt es In arendst/Sonoff-Tasmota
das command "messageformat legacy"
nicht mehr. :'(
Siehe hier unten die log Ausgabe.
---------------------------------------------------------
00:45:02 HTTP: Handle console
00:45:02 RSLT: Receive topic cmnd/sonoffpow1842/messageformat, data size 6, data legacy
00:45:02 RSLT: DataCb Topic sonoffpow1842, Group 0, Index 1, Type MESSAGEFORMAT, Data legacy (LEGACY)
00:45:02 MQTT: stat/sonoffpow1842/COMMANDS1 = {"Commands1":"Status, SaveData, SaveSate, Sleep, Upgrade, Otaurl, Restart, Reset, WifiConfig, Seriallog, Syslog, LogHost, LogPort, SSId1, SSId2, Password1, Password2, AP, Hostname, Module, Modules, GPIO, GPIOs"}
00:45:02 MQTT: stat/sonoffpow1842/COMMANDS2 = {"Commands2":"Mqtt, MqttHost, MqttPort, MqttUser, MqttPassword, MqttClient, Topic, ButtonTopic, ButtonRetain, SwitchTopic, SwitchRetain, PowerRetain, GroupTopic, Units, Timezone, LedState, LedPower, TelePeriod"}
00:45:02 MQTT: stat/sonoffpow1842/COMMANDS3 = {"Commands3":"Power, Light, PowerOnState, PulseTime, BlinkTime, BlinkCount, Weblog, Webserver, Emulation"}
00:45:02 MQTT: stat/sonoffpow1842/COMMANDS4 = {"Commands4":"DomoticzInTopic, DomoticzOutTopic, DomoticzIdx, DomoticzKeyIdx, DomoticzSwitchIdx, DomoticzSensorIdx, DomoticzUpdateTimer"}
00:45:02 MQTT: stat/sonoffpow1842/COMMANDS5 = {"Commands5":"PowerLow, PowerHigh, VoltageLow, VoltageHigh, CurrentLow, CurrentHigh, HlwPcal, HlwUcal, HlwIcal, SafePower, SafePowerHold, SafePowerWindow, MaxPower, MaxPowerHold, MaxPowerWindow, MaxEnergy, MaxEnergyStart"}
00:45:02 Wifi: Checking connection...
00:45:02 Wifi: Connected
---------------------------------------------------------
Kann mir einer einen Tip geben :P, wie ich den String in den Geschweiften Klammern
ENERGY
{"Time":"2017-02-06T02:14:52", "Yesterday":"0.424", "Today":"0.145", "Period":0, "Power":0, "Factor":"0.00", "Voltage":227, "Current":"0.000"}
in FHEM zerlegt, damit ich z.B. Current auswerten / weiter verarbeiten kann.
Ich für jeden Tip dankbar. :)
Es grüßt der Mickbaer aus Berlin :-*
Zitat von: Mickbaer am 07 Februar 2017, 01:03:13
Kann mir einer einen Tip geben :P, wie ich den String in den Geschweiften Klammern
ENERGY
{"Time":"2017-02-06T02:14:52", "Yesterday":"0.424", "Today":"0.145", "Period":0, "Power":0, "Factor":"0.00", "Voltage":227, "Current":"0.000"}
in FHEM zerlegt, damit ich z.B. Current auswerten / weiter verarbeiten kann.
Entweder den Wert mit Capture Groups (http://perldoc.perl.org/perlre.html) extrahieren oder den JSON String mit dem Perl Modul JSON in einen Hash umwandeln (http://search.cpan.org/~makamaka/JSON-2.90/lib/JSON.pm) und dann den Key 'Current' nutzen. Den/die erhaltenen Werte kannst Du dann mit setreading (http://fhem.de/commandref.html#setreading) in ein Reading schreiben.
ZitatEntweder den Wert mit Capture Groups (http://perldoc.perl.org/perlre.html) extrahieren oder den JSON String mit dem Perl Modul JSON in einen Hash umwandeln (http://search.cpan.org/~makamaka/JSON-2.90/lib/JSON.pm) und dann den Key 'Current' nutzen. Den/die erhaltenen Werte kannst Du dann mit setreading (http://fhem.de/commandref.html#setreading) in ein Reading schreiben.
Das kling ja alles hoch Kompliziert.
Aber wie soll ich das alles in FHEM machen?
Hast Du da mal ein Beispiel was ich da in FHEM eingeben muss?
Und warum musste Theo das MQTT Format umstellen?
Ich habe gelesen, wegen des Speicherplatzes, das neue Format ist schlanker für Ihn.
Ich konnte aber nirgends finden, wie er auf dieses kryptische Format in dem Result String gekommen ist?
Auch warum er die Bezeichner wie Current in Hochkomma eingeschlossen hat, verstehe ich nicht?
So eine Verschlüsselung habe ich noch nirgends gesehen. :'(
Eine Aufreihung der Messwerte wie Strom: 1.45, Power: 0,234 usw. würde ich ja noch verstehen,
aber woher kommt dieses Kryptisch Format
und vor allem, wie/was muss ich alles in FHEM anstellen um das wieder auszuwerten? :(
Ein Beispiel, wo das schon so in FHEM gemacht wird, wäre schön, :-*
dann kann ich mir abschauen wie ich zu meinen Daten komme. ::)
Gruß Mickbaer
Ich habe mir einfach basierend auf der 3.9.11 Tasmota die "ino" gepatcht und das Legacy Format wieder eingebaut. Es sind zwar nur wenige Zeilen, aber auf Dauer ist das sicher keine Lösung und es kommt einfach alles parallel (keine Umschaltung des Formates). Ich mag auch nicht alle meine Configs ändern.
Ich verstehe aber ohnehin nicht warum alle jetzt die Tasmota haben wollen und sich dann mit dem Format ärgern, die kann wegen dem nicht mehr bis auf die erweiterte Konfiguration im Webif.
17:19:39 MQTT: tele/TestSwitch/STATE = {"Time":"2017-02-07T17:19:39", "Uptime":0, "POWER":"ON", "Wifi":{"AP":2, "SSID":"xxxxx", "RSSI":100}}
17:19:39 MQTT: tele/TestSwitch/DHT/TEMPERATURE = 21.4
17:19:39 MQTT: tele/TestSwitch/DHT/HUMIDITY = 38.0
17:19:39 MQTT: tele/TestSwitch/SENSOR = "DHT":{"Temperature":"21.4", "Humidity":"38.0"}
jetzt kommen die Temperatur und die Luftfeuchte wieder im alten LEGACY Format am Broker an und es sind keine weiteren Änderungen in Fhem durchzuführen. Ich habe das jetzt testweise nur bei dem DHT22 durchgeführt, ist aber für weitere Sensoren sicherlich auch kein Problem.
Im Anhang die beiden gepatchten Dateien, einfach ins Arbeitsverzeichnis kopieren und neu compilieren.
Danke an dev0 für seine Erklärungen zum filtern des JSON Strings.
LG
so, habe nun auch den POW erweitert und bin am testen, schaut aber auch schon gut aus!
19:58:04 MQTT: tele/sonoffpow3/STATE = {"Time":"2017-02-07T19:58:04", "Uptime":0, "LIGHT":"ON", "Wifi":{"AP":1, "SSID":"xxxxx", "RSSI":62}}
19:58:04 MQTT: tele/sonoffpow3/YESTERDAY_ENERGY = 0.083
19:58:04 MQTT: tele/sonoffpow3/TODAY_ENERGY = 0.069
19:58:04 MQTT: tele/sonoffpow3/PERIOD_ENERGY = 0
19:58:04 MQTT: tele/sonoffpow3/CURRENT_POWER = 3
19:58:04 MQTT: tele/sonoffpow3/POWER_FACTOR = 0.19
19:58:04 MQTT: tele/sonoffpow3/VOLTAGE = 228
19:58:04 MQTT: tele/sonoffpow3/CURRENT = 0.073
19:58:04 MQTT: tele/sonoffpow3/ENERGY = 0.073"Yesterday":"0.083", "Today":"0.069", "Period":0, "Power":3, "Factor":"0.19", "Voltage":228, "Current":"0.073"}
wie man sieht, wird auch hier zusätzlich zum JSON wie gewohnt auch im LEGACY Format ausgegeben. Hier waren allerdings einige Zeilen mehr betroffen weil die Aufrufe bis zu 4 x verschachtelt sind.
Ich hänge daher nochmals alle geänderten Files an, muss aber noch ausgiebig testen.
LG
Cool, danke für die Arbeit.
Kenne mich ja so nicht aus, aber währe es dann nicht wirklich einfacher FHEM das JSON beizubringen?
ja hat ja dev0 uns schon geschrieben das es auch anders geht, aber das ist auch ein Aufwand und das bei jeder einzelnen Konfiguration. Ich tu mir beim patchen des Sketches leichter, obwohl ich das auch noch nie gemacht habe, aber einlesen muss man sich überall.
Im Augenblick besteht aber auch kein wirklicher Bedarf, denn die Version Sonoff-MQTT-OTA-Arduino (wie im Wiki beschrieben) funktioniert ja problemlos und ist ja in etwa auf dem selben Entwicklungsstand was Devices und Modelle betrifft. Wer unbedingt Tasmota haben will muss halt patchen oder sich mit JSON Filter näher befassen.
LG
Zitat von: Reinhart am 07 Februar 2017, 21:05:39
ja hat ja dev0 uns schon geschrieben das es auch anders geht, aber das ist auch ein Aufwand und das bei jeder einzelnen Konfiguration. Ich tu mir beim patchen des Sketches leichter, obwohl ich das auch noch nie gemacht habe, aber einlesen muss man sich überall.
Im Augenblick besteht aber auch kein wirklicher Bedarf, denn die Version Sonoff-MQTT-OTA-Arduino (wie im Wiki beschrieben) funktioniert ja problemlos und ist ja in etwa auf dem selben Entwicklungsstand was Devices und Modelle betrifft. Wer unbedingt Tasmota haben will muss halt patchen oder sich mit JSON Filter näher befassen.
LG
Nun ich habe deinen Tipp befolgt und bin auch auf MQTT umgestiegen. Was mir aber auffällt, das die MQTT Bridge noch wirklich zuverlässig arbeitet. Restarte ich zum Beispiel den mosquitto Server, dann ist einer FHEM Verbindung, ohne Neustart, nicht mehr möglich. Ich "traue" der MQTT Integration in FHEM leider noch nicht so sehr.......ist es nur bei mir so?
BTW: Vielen Dank an Reinhart für den tollen Wiki Eintrag!
ich habe das jetzt bei mir nachgestellt, also den Mosquitto gestoppt, dann versucht einen Befehl in Fhem auszuführen. Der Befehl bleibt dann natürlich hängen.
Dann Mosquitto wieder gestartet und versucht einen erneuten Befehl abzusetzen, fehlgeschlagen. Dann den Taster am Sonoff betätigt und am Broker mitgelogt. Der MQTT String kommt an und Fhem synchronisiert sofort wieder und zeigt mir den aktuellen Status des Sonoff an.
D.h., die Kommunikation zu Fhem funktioniert erst wieder, wenn die ersten Meldungen (stat oder tele) vom einem Device eintreffen. So ist das Verhalten zumindest bei mir. Ich bin aber ehrlicherweise noch nie auf die Idee gekommen den Mosquitto zu stoppen, der läuft seit Monaten ohne Probleme durch. Das einzige was ich am Broker mache, ich logge des Öfteren mit um zu sehen was die Devices so schicken, speziell wenn ich was neues einbinde. Den Raspberry (wo auch der Broker läuft) boote ich aber 3-4 mal pro Jahr um zu sehen ob er nach einem Netzausfall noch fehlerfrei starten würde und schaue mir die Logs dann durch.
Bei mir läuft der Broker und FHEM auf demselben Raspi.
pi@raspberry ~ $ sudo service mosquitto status
[ ok ] mosquitto is running.
pi@raspberry ~ $ sudo service mosquitto stop
[ ok ] Stopping network daemon:: mosquitto.
pi@raspberry ~ $ sudo service mosquitto start
[ ok ] Starting network daemon:: mosquitto.
pi@raspberry ~ $ mosquitto_sub -d -v -t \#
Received CONNACK
Received SUBACK
Subscribed (mid: 1): 0
Received PUBLISH (d0, q0, r0, m0, 'stat/TestSwitch/RESULT', ... (14 bytes))
stat/TestSwitch/RESULT {"POWER":"ON"}
Received PUBLISH (d0, q0, r0, m0, 'stat/TestSwitch/POWER', ... (2 bytes))
stat/TestSwitch/POWER ON
Received PUBLISH (d0, q0, r0, m0, 'stat/TestSwitch/RESULT', ... (15 bytes))
stat/TestSwitch/RESULT {"POWER":"OFF"}
Received PUBLISH (d0, q0, r0, m0, 'stat/TestSwitch/POWER', ... (3 bytes))
stat/TestSwitch/POWER OFF
die Meldung "stat/TestSwitch/POWER ON" kommt vom händischen Tastendruck und synchronisiert sofort die Verbindung zu FHEM.
LG
Zitat von: Reinhart am 07 Februar 2017, 21:05:39
ja hat ja dev0 uns schon geschrieben das es auch anders geht, aber das ist auch ein Aufwand und das bei jeder einzelnen Konfiguration.
Anscheinend gibt es ja Bedarf für einen Mechnismus, der den (Arends?) JSON String in Readings schreibt. Da das nicht wirklich kompliziert ist, könnte ich Euch das in eine generische Sub verpacken, die dann per Notify aufgerufen werden könnte und nicht weiter angepasst werden muß.
Wird der JSON String immer in ein Reading mit dem gleichen Namen geschrieben oder ist das variable?
Hm, mit dem Modul httpmod kann ich doch schon Jason parsen!
Gesendet von iPad mit Tapatalk
Grüße Jörg
Zitat von: JoWiemann am 08 Februar 2017, 14:20:21
Hm, mit dem Modul httpmod kann ich doch schon Jason parsen!
Ich hatte den Eindruck, dass für die Arendts Firmware das MQTT Modul genutzt wird, dass dieses Feature nicht bietet. Den Bezug zum HTTPMOD Modul verstehe ich gerade nicht, aber wenn mein Angebot damit überflüssig ist, dann spare ich mir gerne die Zeit.
Es war nur der Hinweis, wenn ein Webservice JSON liefert, dann gibt es ein Modul. Wenn nicht, dann...
Gesendet von iPad mit Tapatalk
Grüße Jörg
Ok, Arendt macht nur MQTT. Dann verwirrt mich aber JSON, oder wolltest Du das in Arendts Sketch implementieren?
Gesendet von iPad mit Tapatalk
Grüße Jörg
Ich hatte mich an dieser/diesen Fragen orientiert und Reinhart's Antwort dazu: https://forum.fhem.de/index.php/topic,60336.msg578102.html#msg578102
Ok, mein Fehler.
Gesendet von iPad mit Tapatalk
Grüße Jörg
Zitat von: Mickbaer am 06 Februar 2017, 02:30:48
Hallo,
zuerst mal ein großes Lob an ALLE, die hier an dieser tollen Lösung mitgewirkt haben.
Ich habe auf die Software Version 3.9.11 20170204 (Tasmato)umgestellt.
Das Platformio Package runter geladen,
userconfig.h meine WiFi Daten angepasst,
compiliert und aufs Sonoff Pow runtergeladen
alles Super gelaufen, läuft, lässt sich einstellen,
MQTT subscribes auf das neue Format angepasst,
FHEM kommt alles an und lässt sich auch schalten.
Ab Version 3.9 haben sich die MQTT Topic's verändert z.B.
von:
CURRENT 0.000 2017-02-05 18:33:46
auf:
ENERGY
{"Time":"2017-02-06T02:14:52", "Yesterday":"0.424", "Today":"0.145", "Period":0, "Power":0, "Factor":"0.00", "Voltage":227, "Current":"0.000"}
Meine Frage ist,
wie bekomme ich den String in den Geschweiften Klammern, in FHEM zerlegt, damit ich z.B. Current auswerten / weiter verarbeiten kann.
Für einen Hinweis wäre Ich dankbar.
Grüße aus Berlin sendet der Mickbaer.
Hm, das kannst Du über ein userReading machen. Den String kannst du mit einer regular Expression oder mit der Perl Funktion split() zerlegen.
Gesendet von iPad mit Tapatalk
Grüße Jörg
Zitat von: JoWiemann am 08 Februar 2017, 15:39:50
Hm, das kannst Du über ein userReading machen. Den String kannst du mit einer regular Expression oder mit der Perl Funktion split() zerlegen.
Genau das hatte ich angeboten, als generische und fehlertolerate Sub bereitzustelllen, die alle gelieferten Werte in Readings schreiben würde. Wird aber anscheinend nicht benötigt und ich bin aus der Diskussion raus.
Zitat von: dev0 am 08 Februar 2017, 15:51:09
Genau das hatte ich angeboten, als generische und fehlertolerate Sub bereitzustelllen, die alle gelieferten Werte in Readings schreiben würde. Wird aber anscheinend nicht benötigt und ich bin aus der Diskussion raus.
Schade ich fände es gut wenn es so etwas geben würde. Ich kenne mich damit zu wenig aus.
Hi dev0,
.... ganz im Gegenteil. Ein sub, die automatisch aus dem json
Zitat
ENERGY
{"Time":"2017-02-06T02:14:52", "Yesterday":"0.424", "Today":"0.145", "Period":0, "Power":0, "Factor":"0.00", "Voltage":227, "Current":"0.000"}
Userreadings erzeugt z.B.
Zitat
ENERGY_Time
ENERGY_Yesterday
ENERGY_Today
ENERGY_Period
ENERGY_Power
ENERGY_Factor
ENERGY_Voltage
fände ich mehr als erstrebenswert!
Idealerweise mit Integration in MQTT_DEVICE :-[
lG
Wolfgang
bekomme aber die werte vom Pow nicht über MQTT
In der console kommt das an:
16:14:46 MQTT: tele/sonoff_pow/STATE = {"Time":"2017-02-08T16:14:46", "Uptime":1, "POWER":"ON", "Wifi":{"AP":1, "SSID":"PC", "RSSI":82}}
16:14:46 RSLT: tele/sonoff_pow/ENERGY = {"Time":"2017-02-08T16:14:46", "Yesterday":"0.000", "Today":"0.005", "Period":0, "Power":38, "Factor":"0.98", "Voltage":230, "Current":"0.169"}
das erste ist MQTT und kann ich abrufen aber das wichtige 2te ist RSLT, wie bekomme ich das zu FHEM übertragen?
@SamNitro
schau mal hier, dann geht es wieder: https://forum.fhem.de/index.php?topic=66714.new#new (https://forum.fhem.de/index.php?topic=66714.new#new)
@dev0
Danke für dein Angebot, natürlich wäre das eine tolle Sache ein Tool zu haben welches Readings aus dem Pseudo JSON String extrahieren und befüllen könnte. Ich bin zwar nicht unbedingt der Freund von vielen notifys, das dürfte aber der einfachste Weg sein nach eintreffen neuer Daten darauf zu reagieren.
Genau aus diesem Grund (notify) bin ich ja den Weg gegangen und baue LEGACY im Sketch wieder ein, weil hier das Problem an der Wurzel gepackt wird. Bei dem heutigen Versionswechsel habe ich dazu gut 20 Minuten gebraucht, waren aber nur geringfügige Korrekturen in einer Datei, sonst wird es länger.
Ich habe auch schon überlegt sowas in die 99_myUtils zu packen, ist aber für meine Perl Kenntnisse zu hoch für mich, da es doch mehr oder weniger ein Parser werden muss. Die Strings sind zwar immer nach dem gleichen Muster aufgebaut, können aber mehrfach verschachtelte geschweifte Klammern haben (Untergruppen).
tele/sonoffpow3/STATE = {"Time":"2017-02-08T19:18:44", "Uptime":5, "LIGHT":"ON", "Wifi":{"AP":1, "SSID":"myssid", "RSSI":72}}
hier ist so eine, die Gruppe Wifi hat Readings wie AP,SSID, RSSl. Der Doppelpunkt ist immer der Trenner zwischen Readingnamen und dem Wert, außer der Doppelpunkt steht in einem String wie bei der Zeit oder er trennt den Gruppenbegriff wie Wifi, dann folgt allerdings eine {.
Wenn du dir wirklich die Mühe machen willst, stelle ich dir gerne einige Strings zur Verfügung, bzw. haben eh schon einige die gepostet.
LG
Reinhart
Zitat von: Reinhart am 08 Februar 2017, 19:26:02
@SamNitro
schau mal hier, dann geht es wieder: https://forum.fhem.de/index.php?topic=66714.new#new (https://forum.fhem.de/index.php?topic=66714.new#new)
Danke, ich habe die Dateien von dir benutzt und selber eine kompiliert.
Mich wundert aber trotzdem das es nicht im MQTT format ist.
Edit: Hat sich mit der neuen version erledig, jetzt ist es so wie es sein soll.
Zitat von: Reinhart am 06 Februar 2017, 09:30:58
genau diese Anwendung habe ich auch, ich steuere sogar weil das Thermostat defekt ist und der POW kehrt nach Stromausfall wieder in den letzten Zustand zurück!
Heute sind meine POWs angekommen. Gleiche den Arends Sketch drauf und in FHEM konfiguriert.
Funktionier auch soweit alles, jedoch nicht das der Ursprungszustand nach simuliertem Stromausfall wiederhergestellt wird.
War Strom an und ich ziehe das Ding aus der Steckdose und stecke es wieder rein wird zwar das Ding wieder eingeschaltet, aber nach kurzer Zeit (ca. 10 Sekunden) wieder ausgeschaltet.
Ich verstehe das nicht. Hier meine Def. in FHEM:
define Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev myMQTTBroker
attr Sonoff_Pow devStateIcon ON:socket-on OFF:socket
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet on off toggle cmnd/sonoffpow1/1/POWER/set
attr Sonoff_Pow retain 0
attr Sonoff_Pow stateFormat state
attr Sonoff_Pow subscribeReading_current tele/sonoffpow1/CURRENT
attr Sonoff_Pow subscribeReading_current_power tele/sonoffpow1/CURRENT_POWER
attr Sonoff_Pow subscribeReading_period_energy tele/sonoffpow1/PERIOD_ENERGY
attr Sonoff_Pow subscribeReading_rssi tele/sonoffpow1/RSSI
attr Sonoff_Pow subscribeReading_state stat/sonoffpow1/POWER
attr Sonoff_Pow subscribeReading_today_energy tele/sonoffpow1/TODAY_ENERGY
attr Sonoff_Pow subscribeReading_uptime tele/sonoffpow1/UPTIME
attr Sonoff_Pow subscribeReading_voltage tele/sonoffpow1/VOLTAGE
attr Sonoff_Pow subscribeReading_yesterday_energy tele/sonoffpow1/YESTERDAY_ENERGY
Zitat von: octek0815 am 08 Februar 2017, 19:39:13
Heute sind meine POWs angekommen. Gleiche den Arends Sketch drauf und in FHEM konfiguriert.
Funktionier auch soweit alles, jedoch nicht das der Ursprungszustand nach simuliertem Stromausfall wiederhergestellt wird.
War Strom an und ich ziehe das Ding aus der Steckdose und stecke es wieder rein wird zwar das Ding wieder eingeschaltet, aber nach kurzer Zeit (ca. 10 Sekunden) wieder ausgeschaltet.
Ich verstehe das nicht. Hier meine Def. in FHEM:
define Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev myMQTTBroker
attr Sonoff_Pow devStateIcon ON:socket-on OFF:socket
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet on off toggle cmnd/sonoffpow1/1/POWER/set
attr Sonoff_Pow retain 0
attr Sonoff_Pow stateFormat state
attr Sonoff_Pow subscribeReading_current tele/sonoffpow1/CURRENT
attr Sonoff_Pow subscribeReading_current_power tele/sonoffpow1/CURRENT_POWER
attr Sonoff_Pow subscribeReading_period_energy tele/sonoffpow1/PERIOD_ENERGY
attr Sonoff_Pow subscribeReading_rssi tele/sonoffpow1/RSSI
attr Sonoff_Pow subscribeReading_state stat/sonoffpow1/POWER
attr Sonoff_Pow subscribeReading_today_energy tele/sonoffpow1/TODAY_ENERGY
attr Sonoff_Pow subscribeReading_uptime tele/sonoffpow1/UPTIME
attr Sonoff_Pow subscribeReading_voltage tele/sonoffpow1/VOLTAGE
attr Sonoff_Pow subscribeReading_yesterday_energy tele/sonoffpow1/YESTERDAY_ENERGY
Versuch mal in der console:
POWERONSTATE 1
Zitat von: SamNitro am 08 Februar 2017, 19:44:05
Versuch mal in der console:
POWERONSTATE 1
Leider keine Besserung...
00:00:00 APP: Project sonoffpow2 sonoffpow1 (Topic sonoffpow1, Fallback DVES_E76DFA, GroupTopic pows) Version 3.2.13
00:00:00 Wifi: Connecting to AP1 xxxxxx in mode 11N as sonoffpow1-3578...
00:00:04 Wifi: Connected
00:00:04 mDNS: Initialized
00:00:04 HTTP: Webserver active on sonoffpow1-3578.local with IP address 10.20.8.136
00:00:05 RSLT: stat/sonoffpow1/RESULT = {"PowerOnState":1}
00:00:06 MQTT: Attempting connection...
19:56:47 mDNS: Query done with 0 mqtt services found
19:56:47 MQTT: Connected
19:56:47 MQTT: tele/sonoffpow1/LWT = Online (retained)
19:56:47 MQTT: stat/sonoffpow1/POWER = OFF
19:56:47 MQTT: tele/sonoffpow1/RESULT = {"Info1":{"AppName":"Sonoff Pow Module", "Version":"3.2.13", "FallbackTopic":"DVES_E76DFA", "GroupTopic":"pows"}}
19:56:47 MQTT: tele/sonoffpow1/RESULT = {"Info2":{"WebserverMode":"Admin", "Hostname":"sonoffpow1-3578", "IPaddress":"10.20.8.136"}}
19:56:48 MQTT: stat/sonoffpow1/POWER = OFF
19:56:55 MQTT: tele/sonoffpow1/POWER = OFF
19:56:55 MQTT: tele/sonoffpow1/UPTIME = 0
19:56:55 MQTT: tele/sonoffpow1/AP = 1
19:56:55 MQTT: tele/sonoffpow1/SSID = xxxxxx
19:56:55 MQTT: tele/sonoffpow1/RSSI = 64
19:56:55 MQTT: tele/sonoffpow1/YESTERDAY_ENERGY = 0.000
19:56:55 MQTT: tele/sonoffpow1/TODAY_ENERGY = 0.000
19:56:55 MQTT: tele/sonoffpow1/PERIOD_ENERGY = 0
19:56:55 MQTT: tele/sonoffpow1/CURRENT_POWER = 0
19:56:55 MQTT: tele/sonoffpow1/POWER_FACTOR = 0.00
19:56:55 MQTT: tele/sonoffpow1/VOLTAGE = 0
19:56:55 MQTT: tele/sonoffpow1/CURRENT = 0.000
19:56:55 MQTT: tele/sonoffpow1/TIME = 2017-02-08T19:56:55
Versuch doch mal bitte die neue version von Reinhart:
https://forum.fhem.de/index.php/topic,66714.new.html#new
Zitat von: SamNitro am 08 Februar 2017, 20:04:12
Versuch doch mal bitte die neue version von Reinhart:
https://forum.fhem.de/index.php/topic,66714.new.html#new
Habe ich nun aufgespielt, nun kommt aber nur noch folgendes an...
tele/sonoffpow1/STATE {"Time":"2017-02-08T20:13:31", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"xxxxxx", "RSSI":96}}
... und sonst nix. :-(
Hab nun die Alte Firmware wieder drauf gemacht und
#define MQTT_POWER_RETAIN 1
gesetzt und nun funktioniert es wie gewünscht.
Bin mir aber nicht sicher ob das Ändern von 0 auf 1 hier geholfen hat.
ja genau, das ist die Einstellung!
warum du mit der neuen Version nichts bekommen hast ist mir noch unklar. Hast du tatsächlich in der Konfiguration den Typ "6 Sonoff Pow" ausgewählt und gespeichert?
Bei Tasmota muss im Gegensatz zu MQTT Version das Modell im Webif eingestellt werden.
LG
Zitat von: Reinhart am 08 Februar 2017, 21:08:17
ja genau, das ist die Einstellung!
warum du mit der neuen Version nichts bekommen hast ist mir noch unklar. Hast du tatsächlich in der Konfiguration den Typ "6 Sonoff Pow" ausgewählt und gespeichert?
Bei Tasmota muss im Gegensatz zu MQTT Version das Modell im Webif eingestellt werden.
LG
nee das hab natürlich nicht, war mir nicht bewusst. Teste Morgen nochmal und gebe Feedback.
Grüße
Olli
ok, das machst du unter dem Menüpunkt "Configure Module", aber nicht vergessen "save" zu drücken!
Aber wenn bei dir alles läuft, dann gibt es auch keinen Grund Tasmota zu verwenden, denn beim POW gibt es per Webif sonst eh nix zu konfigurieren als das du eh schon hast.
LG
Zitat von: Reinhart am 09 Februar 2017, 08:29:54
ok, das machst du unter dem Menüpunkt "Configure Module", aber nicht vergessen "save" zu drücken!
Aber wenn bei dir alles läuft, dann gibt es auch keinen Grund Tasmota zu verwenden, denn beim POW gibt es per Webif sonst eh nix zu konfigurieren als das du eh schon hast.
LG
Nee, werde ich auch nicht machen, es funktioniert ja alles was ich brauche.
Hast Du ne Idee wie ich Monats und Jahreswerte aufzeichnen kann?
Das Statistics Modul wird wohl eher nicht hiermit funktionieren oder?
VG
ich mache die Statistik einfach mit average!
define Sonoff_Pow_CURRENT_POWER average Sonoff_Pow:CURRENT_POWER.*
dieser Define und schon werden die Statistiken im POW Define als Reading angelegt. "Sonoff_Pow" ist der Name des Define, musst auf deinen anpassen.
Jahreswert habe ich aber nicht.
LG
Zitat von: Reinhart am 08 Februar 2017, 19:26:02
@dev0
Danke für dein Angebot, natürlich wäre das eine tolle Sache ein Tool zu haben welches Readings aus dem Pseudo JSON String extrahieren und befüllen könnte. Ich bin zwar nicht unbedingt der Freund von vielen notifys, das dürfte aber der einfachste Weg sein nach eintreffen neuer Daten darauf zu reagieren.
Man braucht nicht mehrere Notifies, sondern nur eins, wenn man die regexp für device:reading entsprechend setzt.
Zufinden ist es hier: https://github.com/ddtlabs/FHEM-Snippets/tree/master/j2r
Fragen/Bugs dazu bitte in diesen Thread: https://forum.fhem.de/index.php?topic=66761
Gibt es hier eigentlich auch eine Funktion "on-for-timer"?
LG
gibt es leider nicht, aber du kannst diese Funktion ganz leicht nachbauen.
1. du definierst die Pulsetime ( pulsetime 112 = 12 Sekunden)
PulseTime | 1..111 | Set PulseTime with 0.1 seconds increment
PulseTime | 112..64900 | Set PulseTime with 1 seconds increment starting with 12 seconds
Wird der Device eingeschalten, dann schaltet er sich automatisch nach 12 Sekunden wieder ab. Dieses Feature verwenden wir bei unseren Wall Switches mit Bewegungsmelder. Achtung: beim 4CH geht das nur auf Kanal1, deshalb habe ich auch die zweite Variante eingebaut weil ich 4 Taster auf einem 4CH benötige.
2. du überwachst den Power Status mit einem notify
define Channel1 notify Sonoff:Power.*(on|ON) define Timerch1 at +00:00:10 "wget -q -O - 'http://10.0.0.113/?o=1'"
Hier wird mit einem Notify der Einschaltstatus überwacht und wenn ein "on" eintrifft (egal von welcher Seite) dann wird nach der eingestellten Zeit (hier 10 Sekunden) mit einem HTTP Request direkt der Kanal1 wieder ausgeschaltet (toggle). Die Zahl nach dem "o=" ist der zu schaltende Kanal, meist 1 aber beim 4CH wir die hochgezählt. Die IP-Adresse musst natürlich auf deinen Sonoff anpassen.
Das oben geschriebene gilt nur für den Arends Sketch (egal ob MQTT oder Tasmota), nicht für ESPEasy!
LG
Ja habe ich mir fast gedacht. Dann bleibe ich bei meinen S20 auf easyesp. Und den pow mache ich mit einem notify.
Danke und LG
Gesendet von iPhone mit Tapatalk
Ist das eigentlich normal das der Tages-Verbrauchswert bei Stromausfall auf null zurückgesetzt wird?
ja, aber nur kurzeitig (etwa 1-2 Sekunden) dann wird der gespeicherte Wert aus dem Flash zurück gelesen, kann man schön sehen wenn du im Webinterface während dem Ausfall eingelogt bleibst.
Siehe die beiden Bilder, das eine war vor dem Stromausfall und das 2. nach dem Stromausfall.
Getestet mit Tasmota 3.2.12 von hier: https://forum.fhem.de/index.php/topic,66714.msg580251.html#msg580251 (https://forum.fhem.de/index.php/topic,66714.msg580251.html#msg580251%20Tasmota)
Zitat von: Reinhart am 13 Februar 2017, 09:27:11
ja, aber nur kurzeitig (etwa 1-2 Sekunden) dann wird der gespeicherte Wert aus dem Flash zurück gelesen, kann man schön sehen wenn du im Webinterface während dem Ausfall eingelogt bleibst.
Siehe die beiden Bilder, das eine war vor dem Stromausfall und das 2. nach dem Stromausfall.
Getestet mit Tasmota 3.2.12 von hier: https://forum.fhem.de/index.php/topic,66714.msg580251.html#msg580251 (https://forum.fhem.de/index.php/topic,66714.msg580251.html#msg580251%20Tasmota)
Du hast vermutlich Recht, und ich war zu ungeduldig und hab das nicht richtig kontrolliert.
Ich werde heute Abend nochmal testen und dann bereichten.
LG
Olli
Hi,
so ich habe es jetzt getestet (ebenfalls mit Tasmota 3.2.12 oder 3.2.14)
Es hat leider genau einmal funktioniert.
Bei weiteten Tests (bestimmt 10x) hat es nicht funktioniert.
Der Wert wurde auf 0.000 zurückgesetzt.
So ist das für eine Verbrauchsmessung nicht zu gebrauchen... :-(
Was kann das sein?
Hier meine Config:
define Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev myMQTTBroker
attr Sonoff_Pow devStateIcon ON:socket-on OFF:socket
attr Sonoff_Pow event-min-interval urPower:60
attr Sonoff_Pow event-on-change-reading .*
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet on off toggle cmnd/sonoffpow1/POWER/set
attr Sonoff_Pow qos at-most-once
attr Sonoff_Pow retain 1
attr Sonoff_Pow room Unsorted
attr Sonoff_Pow stateFormat state
attr Sonoff_Pow subscribeReading_device_info1 tele/sonoffpow1/INFO1
attr Sonoff_Pow subscribeReading_device_info2 tele/sonoffpow1/INFO2
attr Sonoff_Pow subscribeReading_device_state tele/sonoffpow1/STATE
attr Sonoff_Pow subscribeReading_energy_state tele/sonoffpow1/ENERGY
attr Sonoff_Pow subscribeReading_state stat/sonoffpow1/POWER
attr Sonoff_Pow userReadings urPower { my $temp = ReadingsVal("Sonoff_Pow","Power","");; return $temp;; }
Ich nutze das j2r Modul von dev0 um aus dem JSON String vernünftige Readings zu machen. Sieht dann aus wie im im ersten Bild.
Ich habe mir die INFO1 und INFO2 eingeblendet für eine Übersichts-ReadingsGroup (siehe zweites Bild).
Hier der Code der ReadingsGroup:
define rg.sonoff.devices readingsGroup <Device>,<Hostname>,<IP>,<Typ>,<Version>,<Uptime>,<RSSI>,<Power>,<Zeit>\
TYPE=MQTT_DEVICE:Hostname,Module,IPaddress,Version,Uptime,Wifi_RSSI,POWER,Time
LG
Olli
Hallo zusammen,
... nochmal zurück zu JSON :).
Ich hatte mal das MQTT_DEVICE - Modul um den JSON - Code von dev0 erweitert. Dies wurde allerdings als magelhafte Integration kritisiert.
lG
Wolfgang
das ist aber ein komisches Verhalten bei deinem POW.
Der Heute Wert wird auf 0 gesetzt, aber der Gestern bleibt erhalten, also wird der gespeicherte Wert zurück gelesen.
Ich nehme jetzt an, im Webif siehst du dieselben Werte und hast du zwischen den Netzausfällen die Teleperiod Time abgewartet?
Ich könnte mir sonst vorstellen, das der POW keine gültige Uhrzeit bekommt, dann wäre es dasselbe Verhalten, gestern ja, aber heute 0 weil es 00:00 Uhr ist. Schau bitte einmal ins Webif wenn du in Fhem 0 siehst ob das auch im Webif so ist und ob die Zeit schon vom NTP geholt wurde.
Die NTP Synchronisation sollte nach einem Neustart innerhalb der ersten Minute passieren.
00:00:00 APP: Project sonoff Husqvarna (Topic sonoffpow3, Fallback DVES_E77082, GroupTopic pows) Version 3.9.12
00:00:00 Wifi: Connecting to AP1 Liwest in mode 11N as sonoffpow3-4226...
00:00:06 Wifi: Connected
00:00:06 mDNS: Initialized
00:00:06 HTTP: Webserver active on sonoffpow3-4226.local with IP address 10.0.0.125
00:00:09 MQTT: Attempting connection...
00:00:10 mDNS: Query done with 0 mqtt services found
00:00:10 MQTT: Connected
00:00:10 MQTT: tele/sonoffpow3/LWT = Online (retained)
00:00:10 MQTT: cmnd/sonoffpow3/POWER =
00:00:10 MQTT: tele/sonoffpow3/INFO1 = {"Module":"Sonoff Pow", "Version":"3.9.12", "FallbackTopic":"DVES_E77082", "GroupTopic":"pows"}
00:00:10 MQTT: tele/sonoffpow3/INFO2 = {"WebserverMode":"Admin", "Hostname":"sonoffpow3-4226", "IPaddress":"10.0.0.125"}
00:00:11 MQTT: stat/sonoffpow3/RESULT = {"LIGHT":"ON"}
00:00:11 MQTT: stat/sonoffpow3/LIGHT = ON (retained)
19:55:17 MQTT: tele/sonoffpow3/LIGHT = ON
19:55:17 MQTT: tele/sonoffpow3/UPTIME = 0
19:55:17 MQTT: tele/sonoffpow3/AP = 1
19:55:17 MQTT: tele/sonoffpow3/SSID = Liwest
19:55:17 MQTT: tele/sonoffpow3/RSSI = 74
19:55:17 MQTT: tele/sonoffpow3/YESTERDAY_ENERGY = 0.083
19:55:17 MQTT: tele/sonoffpow3/TODAY_ENERGY = 0.069
19:55:17 MQTT: tele/sonoffpow3/PERIOD_ENERGY = 0
19:55:17 MQTT: tele/sonoffpow3/CURRENT_POWER = 3
19:55:17 MQTT: tele/sonoffpow3/POWER_FACTOR = 0.20
19:55:17 MQTT: tele/sonoffpow3/VOLTAGE = 227
19:55:17 MQTT: tele/sonoffpow3/CURRENT = 0.075
hier siehst du die NTP Sync setzt nach 17 Sekunden ein, kann aber je nach Wifi Connection Time länger dauern! Wie du siehst ist nach dem NTP Sync sofort der Heute-Wert da.
Ich habe 4 POWs und alle behalten den Wert!
LG
Zitat von: ZeitlerW am 13 Februar 2017, 19:50:59
Ich habe mal das MQTT_DEVICE - Modul um den JSON - Code von dev(0) erweitert. Damit braucht man nun keine notify - Konstrukte mehr.
Hallo Wolfgang!
Vielen Dank, super Sache weil diese Lösung nun den größtmöglichen Komfort bietet, der Anwender braucht überhaupt nix tun.
Ich habe das soeben auf einem Testdevice ( Sonoff Basic mit DHT22 ) getestet. Es funktioniert alles perfekt, auch der Sendeweg ist davon nicht beinflußt worden.
LG
Zitat von: Reinhart am 13 Februar 2017, 19:59:26
das ist aber ein komisches Verhalten bei deinem POW.
Der Heute Wert wird auf 0 gesetzt, aber der Gestern bleibt erhalten, also wird der gespeicherte Wert zurück gelesen.
Ich nehme jetzt an, im Webif siehst du dieselben Werte und hast du zwischen den Netzausfällen die Teleperiod Time abgewartet?
Ich könnte mir sonst vorstellen, das der POW keine gültige Uhrzeit bekommt, dann wäre es dasselbe Verhalten, gestern ja, aber heute 0 weil es 00:00 Uhr ist. Schau bitte einmal ins Webif wenn du in Fhem 0 siehst ob das auch im Webif so ist und ob die Zeit schon vom NTP geholt wurde.
Die NTP Synchronisation sollte nach einem Neustart innerhalb der ersten Minute passieren.
00:00:00 APP: Project sonoff Husqvarna (Topic sonoffpow3, Fallback DVES_E77082, GroupTopic pows) Version 3.9.12
00:00:00 Wifi: Connecting to AP1 Liwest in mode 11N as sonoffpow3-4226...
00:00:06 Wifi: Connected
00:00:06 mDNS: Initialized
00:00:06 HTTP: Webserver active on sonoffpow3-4226.local with IP address 10.0.0.125
00:00:09 MQTT: Attempting connection...
00:00:10 mDNS: Query done with 0 mqtt services found
00:00:10 MQTT: Connected
00:00:10 MQTT: tele/sonoffpow3/LWT = Online (retained)
00:00:10 MQTT: cmnd/sonoffpow3/POWER =
00:00:10 MQTT: tele/sonoffpow3/INFO1 = {"Module":"Sonoff Pow", "Version":"3.9.12", "FallbackTopic":"DVES_E77082", "GroupTopic":"pows"}
00:00:10 MQTT: tele/sonoffpow3/INFO2 = {"WebserverMode":"Admin", "Hostname":"sonoffpow3-4226", "IPaddress":"10.0.0.125"}
00:00:11 MQTT: stat/sonoffpow3/RESULT = {"LIGHT":"ON"}
00:00:11 MQTT: stat/sonoffpow3/LIGHT = ON (retained)
19:55:17 MQTT: tele/sonoffpow3/LIGHT = ON
19:55:17 MQTT: tele/sonoffpow3/UPTIME = 0
19:55:17 MQTT: tele/sonoffpow3/AP = 1
19:55:17 MQTT: tele/sonoffpow3/SSID = Liwest
19:55:17 MQTT: tele/sonoffpow3/RSSI = 74
19:55:17 MQTT: tele/sonoffpow3/YESTERDAY_ENERGY = 0.083
19:55:17 MQTT: tele/sonoffpow3/TODAY_ENERGY = 0.069
19:55:17 MQTT: tele/sonoffpow3/PERIOD_ENERGY = 0
19:55:17 MQTT: tele/sonoffpow3/CURRENT_POWER = 3
19:55:17 MQTT: tele/sonoffpow3/POWER_FACTOR = 0.20
19:55:17 MQTT: tele/sonoffpow3/VOLTAGE = 227
19:55:17 MQTT: tele/sonoffpow3/CURRENT = 0.075
hier siehst du die NTP Sync setzt nach 17 Sekunden ein, kann aber je nach Wifi Connection Time länger dauern! Wie du siehst ist nach dem NTP Sync sofort der Heute-Wert da.
Ich habe 4 POWs und alle behalten den Wert!
LG
Hier der Auszug aus der Console:
00:00:00 APP: Project sonoff sonoffpow1 (Topic sonoffpow1, Fallback DVES_E76DFA, GroupTopic pows) Version 3.9.14
00:00:00 Wifi: Connecting to AP1 N-O-D-D-E-S in mode 11N as sonoffpow1-3578...
00:00:06 Wifi: Connected
00:00:06 mDNS: Initialized
00:00:06 HTTP: Webserver active on sonoffpow1-3578.local with IP address 10.20.8.136
21:01:25 MQTT: Attempting connection...
21:01:27 mDNS: Query done with 0 mqtt services found
21:01:27 MQTT: Connected
21:01:27 MQTT: tele/sonoffpow1/LWT = Online (retained)
21:01:27 MQTT: cmnd/sonoffpow1/POWER =
21:01:27 MQTT: stat/sonoffpow1/COMMANDS1 = {"Commands1":"Status, SaveData, SaveSate, Sleep, Upgrade, Otaurl, Restart, Reset, WifiConfig, Seriallog, Syslog, LogHost, LogPort, SSId1, SSId2, Password1, Password2, AP, Hostname, Module, Modules, GPIO, GPIOs"}
21:01:27 MQTT: stat/sonoffpow1/COMMANDS2 = {"Commands2":"Mqtt, MqttHost, MqttPort, MqttUser, MqttPassword, MqttClient, Topic, ButtonTopic, ButtonRetain, SwitchTopic, SwitchRetain, PowerRetain, GroupTopic, Units, Timezone, LedState, LedPower, TelePeriod"}
21:01:27 MQTT: stat/sonoffpow1/COMMANDS3 = {"Commands3":"Power, Light, PowerOnState, PulseTime, BlinkTime, BlinkCount, Weblog, Webserver, Emulation"}
21:01:27 MQTT: stat/sonoffpow1/COMMANDS4 = {"Commands4":"DomoticzInTopic, DomoticzOutTopic, DomoticzIdx, DomoticzKeyIdx, DomoticzSwitchIdx, DomoticzSensorIdx, DomoticzUpdateTimer"}
21:01:27 MQTT: stat/sonoffpow1/COMMANDS5 = {"Commands5":"PowerLow, PowerHigh, VoltageLow, VoltageHigh, CurrentLow, CurrentHigh, HlwPcal, HlwUcal, HlwIcal, SafePower, SafePowerHold, SafePowerWindow, MaxPower, MaxPowerHold, MaxPowerWindow, MaxEnergy, MaxEnergyStart"}
21:01:27 MQTT: tele/sonoffpow1/INFO1 = {"Module":"Sonoff Pow", "Version":"3.9.14", "FallbackTopic":"DVES_E76DFA", "GroupTopic":"pows"}
21:01:27 MQTT: tele/sonoffpow1/INFO2 = {"WebserverMode":"Admin", "Hostname":"sonoffpow1-3578", "IPaddress":"10.20.8.136"}
21:01:27 MQTT: stat/sonoffpow1/RESULT = {"POWER":"OFF"}
21:01:27 MQTT: stat/sonoffpow1/POWER = OFF
21:01:28 MQTT: stat/sonoffpow1/RESULT = {"POWER":"OFF"}
21:01:28 MQTT: stat/sonoffpow1/POWER = OFF
21:01:35 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:01:35", "Uptime":0, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":76}}
21:01:35 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:01:35", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:01:45 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:01:45", "Uptime":0, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":74}}
21:01:45 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:01:45", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:01:55 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:01:55", "Uptime":0, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":74}}
21:01:55 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:01:55", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:02:05 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:02:05", "Uptime":0, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":80}}
21:02:05 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:02:05", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:02:15 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:02:15", "Uptime":0, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":82}}
21:02:15 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:02:15", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:02:25 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:02:25", "Uptime":0, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":82}}
21:02:25 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:02:25", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:02:30 MQTT: tele/sonoffpow1/UPTIME = {"Time":"2017-02-13T21:02:30", "Uptime":1}
21:02:35 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:02:35", "Uptime":1, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":76}}
21:02:35 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:02:35", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:02:45 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:02:45", "Uptime":1, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":76}}
21:02:45 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:02:45", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
21:02:55 MQTT: tele/sonoffpow1/STATE = {"Time":"2017-02-13T21:02:55", "Uptime":1, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":76}}
21:02:55 MQTT: tele/sonoffpow1/ENERGY = {"Time":"2017-02-13T21:02:55", "Yesterday":"0.013", "Today":"0.000", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
ich habe mir nun exakt dieselbe Version aufgespielt ( neu geflasht ) und selbst nach dem flashen ist der heute Wert bei mir noch da.
Da kann ich dir dann leider auch nicht mehr weiter helfen.
LG
Die Konfiguration mit dem j2r Modul für Tasmota sieht in Fhem nun wesentlich einfacher aus:
define Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev myBroker
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet ON OFF cmnd/sonoffpow/LIGHT/
attr Sonoff_Pow stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h avg: %.1f W", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef), ReadingsVal($name,"Power_avg_day",undef))}
attr Sonoff_Pow subscribeReading_ENERGY tele/sonoffpow/ENERGY
attr Sonoff_Pow subscribeReading_LIGHT stat/sonoffpow/LIGHT
attr Sonoff_Pow subscribeReading_state cmnd/sonoffpow/LIGHT
LG
Zitat von: Reinhart am 13 Februar 2017, 21:35:57
ich habe mir nun exakt dieselbe Version aufgespielt ( neu geflasht ) und selbst nach dem flashen ist der heute Wert bei mir noch da.
Da kann ich dir dann leider auch nicht mehr weiter helfen.
LG
Hi,
so ich hab nun weiter geforscht. Und kann das Problem bei Beiden POWs die ich habe nachstellen.
- Stromlos mach verlieren beide den aktellen Tageswert.
- Reset 2 in der Console, neu einbinden ins WLAN (3xKnopf) >> Siehe da der Letzte Wert ist da. >> Today Wert erhöht sich, Strom weg >> und wieder ist der Today-Wert auf den Stand von Reset 2.
Vor dem Strom entfernen:
19:00:47 RSLT: tele/sonoff/STATE = {"Time":"2017-02-14T19:00:47", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":84}}
19:00:47 RSLT: tele/sonoff/ENERGY = {"Time":"2017-02-14T19:00:47", "Yesterday":0.000, "Today":0.012, "Period":0, "Power":54, "Factor":1.00, "Voltage":214, "Current":0.244}
19:00:58 MQTT: Attempting connection...
19:00:59 mDNS: Query done with 0 mqtt services found
19:01:09 RSLT: tele/sonoff/STATE = {"Time":"2017-02-14T19:01:09", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":86}}
19:01:09 RSLT: tele/sonoff/ENERGY = {"Time":"2017-02-14T19:01:09", "Yesterday":0.000, "Today":0.012, "Period":0, "Power":54, "Factor":1.00, "Voltage":214, "Current":0.246}
19:01:16 MQTT: Attempting connection...
19:01:17 mDNS: Query done with 0 mqtt services found
Nach dem Strom wieder da ist:
19:01:51 mDNS: Query done with 0 mqtt services found
19:02:03 RSLT: tele/sonoff/STATE = {"Time":"2017-02-14T19:02:03", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":82}}
19:02:03 RSLT: tele/sonoff/ENERGY = {"Time":"2017-02-14T19:02:03", "Yesterday":0.000, "Today":0.007, "Period":0, "Power":54, "Factor":1.00, "Voltage":213, "Current":0.245}
19:02:08 MQTT: Attempting connection...
19:02:09 mDNS: Query done with 0 mqtt services found
Warten auf Today > 0.007...
19:02:45 mDNS: Query done with 0 mqtt services found
19:02:54 RSLT: tele/sonoff/STATE = {"Time":"2017-02-14T19:02:54", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":84}}
19:02:54 RSLT: tele/sonoff/ENERGY = {"Time":"2017-02-14T19:02:54", "Yesterday":0.000, "Today":0.008, "Period":0, "Power":54, "Factor":1.00, "Voltage":212, "Current":0.246}
19:03:02 MQTT: Attempting connection...
19:03:03 mDNS: Query done with 0 mqtt services found
Nach Reset 2
19:04:58 mDNS: Query done with 0 mqtt services found
19:05:11 RSLT: tele/sonoff/STATE = {"Time":"2017-02-14T19:05:11", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"N-O-D-D-E-S", "RSSI":82}}
19:05:11 RSLT: tele/sonoff/ENERGY = {"Time":"2017-02-14T19:05:11", "Yesterday":0.000, "Today":0.009, "Period":0, "Power":55, "Factor":1.00, "Voltage":216, "Current":0.246}
Hast Du es mal probiert mehrmals nacheinander mit ein wenig Abstand Stromlos zu machen?
Grüße
Olli
PS: Ich bin verzweifelt
Zitat von: Reinhart am 13 Februar 2017, 20:34:44
Hallo Wolfgang!
Vielen Dank, super Sache weil diese Lösung nun den größtmöglichen Komfort bietet, der Anwender braucht überhaupt nix tun.
Ich habe das soeben auf einem Testdevice ( Sonoff Basic mit DHT22 ) getestet. Es funktioniert alles perfekt, auch der Sendeweg ist davon nicht beinflußt worden.
LG
@Reinhart
Danke dass du mir die geänderte 10_MQTT_DEVICE.pm von Wolfgang geschickt hast.
Habe das soeben mit meinem Sonoff POW ausprobiert!
Klappt hervorragend mit Sonoff-Tasmota 3.9.16 und bietet wirklich den größtmöglichen Komfort. ;D
Danke auch an Wolfgang
Billy
ja, ist wirklich einfach zu handhaben!
Soweit ich weiß, möchte Wolfgang die von dev0 entdeckten Schwachstellen versuchen zu entschärfen. Ich teste auch seit gestern Abend und checke auch die Logs auf eventuelle Ungereimtheiten. Ich habe alle Sonoff umgestellt auf JSON, habe aber noch unterschiedliche Versionen da ich mit dem Updatezyklus von Theo nicht Schritt halten kann (ist jetzt aber positiv gemeint).
LG
Reinhart
Zitat von: octek0815 am 14 Februar 2017, 19:07:01
so ich hab nun weiter geforscht. Und kann das Problem bei Beiden POWs die ich habe nachstellen.
- Stromlos mach verlieren beide den aktellen Tageswert.
- Reset 2 in der Console, neu einbinden ins WLAN (3xKnopf) >> Siehe da der Letzte Wert ist da. >> Today Wert erhöht sich, Strom weg >> und wieder ist der Today-Wert auf den Stand von Reset 2.
Du hast 2 Geräte die alle beide nicht funktionieren, ich habe 4 die alle funktionieren, vielleicht meldet sich hier noch jemand der diesen Fehler auch feststellen kann, dann sollte man bei Theo eine Anfrage starten. Vielleicht hängt es doch mit dem Timing des NTP beim Neustart zusammen, den nach 00:00:00 Überlauf wird der Today auf 0 gesetzt.
LG
Zitat von: Reinhart am 14 Februar 2017, 20:51:19
Du hast 2 Geräte die alle beide nicht funktionieren, ich habe 4 die alle funktionieren, vielleicht meldet sich hier noch jemand der diesen Fehler auch feststellen kann, dann sollte man bei Theo eine Anfrage starten. Vielleicht hängt es doch mit dem Timing des NTP beim Neustart zusammen, den nach 00:00:00 Überlauf wird der Today auf 0 gesetzt.
LG
Hi,
ich habe nun Rückmeldung von Theo Arendst:
ZitatToday power is dynamic. Saving it's value to flash on every change wil blow your hardware within months. So today power is saved only at 00:00 and is then called yesterday.
You should save the values yourself using a home automation tool like domoticz.
Somit ist das Problem für mich erledigt und ich muss es irgendwie in FHEM lösen.
Was ich aber nicht verstehe ist, das es bei dir so klappt, oder hast Du den SONOFF nicht komplett stromlos gemacht?
Grüße
Olli
so, ich habe mir jetzt die Sourcen einmal genau angesehen und konnte nun alles nachvollziehen!
if (rtcTime.Valid) {
if (rtc_loctime() == rtc_midnight()) {
sysCfg.hlw_kWhyesterday = hlw_kWhtoday;
hlw_kWhtoday = 0; //um Mitternacht auf 0 setzen
hlw_mkwh_state = 3;
}
entscheidend ist diese Routine, um Punkt Mitternacht wird Today auf Yesterday kopiert und Today auf 0 gesetzt. Mein ursprünglicher Verdacht, dass es bei Neustart (00:00:00) Mitternacht sei ist nicht eingetreten, da diese Routine erst Sekunden später ausgeführt wird.
if ((rtcTime.Minute == 59) && (rtcTime.Second == 59)) { // alle Stunde speichern
//if (rtcTime.Second == 59) { // alle Minute speichern
sysCfg.hlw_kWhtoday = hlw_kWhtoday;
}
Ich hab daher nun diese kleine Prüfung eingebaut und speichere alle Stunde den Today in den Flash. Du kannst zum testen auch alle Minuten einstellen. Ich würde aber für den normalen Betrieb nur alle Stunden speichern, um den Flash nicht zu oft zu beschreiben und somit ein vorzeitiges Ableben des Moduls zu provozieren.
Die Änderung erfolgt im Sensorteil "xns_hlw8012.ino"
Warum das bei geklappt hat war klar, ich habe vor dem Kaltstart immer mehrere Warmstart gehabt und da wird ja der Wert brav gespeichert.
Teste einmal und berichte mir. Was ich aber auch nicht ganz verstehe, warum hast du so viele Netzausfälle? Die habe ich nur alle paar Jahre.
Im Anhang die Bin auf "stündlich" speichern eingestellt.
LG
Reinahrt
Hallo Reinhart,
erstmal vielen Dank für deine Mühe! Vorweg, nein wir haben hier nicht dauernd Stromausfälle.
Vermutlich liegt die Ausfall-Quote ähnlich wie bei dir, also alle paar Jahre.
Den Rest probiere ich mal heute Abend aus, aber eventuell habe ich schon eine andere Lösung dafür.
Ich muss diese aber noch endgültig testen. Ich nutze dafür ein Notfiy, UserReadings und in At und für die Tages, Monats und Jahres Werte dann Statistics.
Wenn ich sicher bin das es funktioniert kann ich es ja hier mal kurz vorstellen bei Interesse.
Viele Grüße
Olli
Zitat von: ZeitlerW am 13 Februar 2017, 19:50:59
... nochmal zurück zu JSON :).
Ich hatte mal das MQTT_DEVICE - Modul um den JSON - Code von dev0 erweitert. Dies wurde allerdings als magelhafte Integration kritisiert.
@ZeitlerW:
Normalerweise hätte ich mich aus dem Thema komplett rausgehalten, da Du aber Code von mir "nicht optimal" in ein fremdes Modul eingebaut hast und das öffentlich angeboten hast, habe ich nur die offensichtlichen Schachstellen an der Implementation aufgezeigt.
@all:
Falls Interesse an einem offiziellen Modul besteht, dass diese Funktionalität allen Modulen zur Verfügung stellt (wie zB. das average Modul auch), dann würde ich den Code "rund" machen und ins svn einchecken. Die Vorab-Version gibt es hier: https://github.com/ddtlabs/expandJSON/
Hätte definitiv Interesse.
Ich habe nun auch Interesse an den Sonoff-Geräten,
aber habe dazu ein paar Fragen:
- An welchen Sonoff-Geräten müssen (außer dem temporären Befestigen des Flashmoduls) Änderungen (wie zB. Löten) vorgenommen werden? Scheint ja laut Wiki bei den Schaltern mit integrierten Sensoren so zu sein.
- Brauchen die Sonoff-Teile irgendeine Art Internetzugang oder kann ich die in ein Geräte-WLAN (offline) packen?
- Gibt es Geräte, die mit FHEM nicht funktionieren?
Zitat von: szoller am 22 Februar 2017, 12:12:19
- An welchen Sonoff-Geräten müssen (außer dem temporären Befestigen des Flashmoduls) Änderungen (wie zB. Löten) vorgenommen werden? Scheint ja laut Wiki bei den Schaltern mit integrierten Sensoren so zu sein.
- Brauchen die Sonoff-Teile irgendeine Art Internetzugang oder kann ich die in ein Geräte-WLAN (offline) packen?
- Gibt es Geräte, die mit FHEM nicht funktionieren?
zu 1: Immer wenn du einen Sensor zusätzlich anhängst (außer beim TH16) musst du die Steckerleiste einlöten damit du den Sensor anstecken kannst ( Vcc + Gnd + GPIO14 ).
zu 2: Ja, Internetzugang ist notwendig wegen der Zeit Synchronisation, der NTP muss erreicht werden! Wenn du einen lokalen NTP hast, entfällt natürlich der Zugang ins iNet. Ob ESPEasy ohne NTP auskommt weiß ich nicht.
zu 3: am SC wird noch gearbeitet, sobald die im Sketch eingebaut wurden funktionieren sie auch mit Fhem. Ob es noch weitere Geräte gibt weiß ich auch nicht so genau.
// -- Time - Up to three NTP servers in your region
#define NTP_SERVER1 "pool.ntp.org"
#define NTP_SERVER2 "nl.pool.ntp.org"
#define NTP_SERVER3 "0.nl.pool.ntp.org"
hier die 3 definierten NTP Server die das Modul erreichen will!
und beim Arends Sketch werden diese Geräte unterstützt:
•iTead Sonoff Basic Sonoff
•iTead Sonoff RF
•iTead Sonoff SV
•iTead Sonoff TH10/TH16 with temperature sensor
•iTead Sonoff Dual
•iTead Sonoff Pow
•iTead Sonoff 4CH
•iTead S20 Smart Socket
•iTead Slampher
•iTead Sonoff Touch
•iTead Sonoff Led
•iTead 1 Channel Switch 5V / 12V
•iTead Motor Clockwise/Anticlockwise
•Electrodragon IoT Relay Board
zusätzlich geht auch der Sonoff Dev ( aber ohne ADC ) .
LG
Reinhart
Zitatzu 1: Immer wenn du einen Sensor zusätzlich anhängst (außer beim TH16) musst du die Steckerleiste einlöten damit du den Sensor anstecken kannst ( Vcc + Gnd + GPIO14 ).
Das heißt, der TH16 funktioniert so wie er ist?
Habe dann wohl die Aussage "TH10 / TH16 weitere GPIO zugänglich machen" im Wiki falsch verstanden, das heißt für den Betrieb so wie er ist, ohne weitere Sensoren, braucht man dann die Drahtbrücken auch nicht?
Zitatzu 2: Ja, Internetzugang ist notwendig wegen der Zeit Synchronisation, der NTP muss erreicht werden! Wenn du einen lokalen NTP hast, entfällt natürlich der Zugang ins iNet. Ob ESPEasy ohne NTP auskommt weiß ich nicht.
Naja, der Raspberry hat einen NTP-Clienten, aber dann brauch ich wohl den entsprechenden Server drauf. Überlegung wäre gewesen, den RPi3 als Access-Point für ein Geräte-WLAN einzurichten, das nicht mit dem Internet verbunden ist. Wird dann eher schwierig.
Zitatzu 3: am SC wird noch gearbeitet, sobald die im Sketch eingebaut wurden funktionieren sie auch mit Fhem. Ob es noch weitere Geräte gibt weiß ich auch nicht so genau.
Der SC scheint ja momentan sowieso nicht verfügbar zu sein, obwohl angezeigt wird "In Stock"...
Das hilft mir weiter :-) Ich danke!
Zitat von: szoller am 22 Februar 2017, 13:25:07
Das heißt, der TH16 funktioniert so wie er ist?
Habe dann wohl die Aussage "TH10 / TH16 weitere GPIO zugänglich machen" im Wiki falsch verstanden, das heißt für den Betrieb so wie er ist, ohne weitere Sensoren, braucht man dann die Drahtbrücken auch nicht?
genau, es sind für den normalen Betrieb mit einem Sensor ( DHT22 oder DS18b20 ) keine Drahtbrücken notwendig. Es handelt sich dabei um weitere GPIOs die da ermöglicht werden, aber so wirklich viel bringt das eh nicht da bei Arends pro Sensorgruppe nur ein Sensor aktiviert werden kann. D.h. ein DHT 22 oder ein DS18b20. Braucht man mehr GPIOs kann man ja ein anderes Gerät wählen ( zB: 4CH oder Dev. ).
Zum NTP, selbst wenn der Rpi ein Geräte WLan verwalten soll, sollte der Zugang zu NTP immer ermöglicht werden (Sonderegel in der FW). Den gerade Geräte brauchen oft genaue Uhrzeit, so wie der Raspi selbst! Wenn du da Sicherheitsbedenken hast, kannst ja alle Geräte in ein Vlan geben ( sofern deine Netzwerkkomponenten das ermöglichen ) und nur einen NTP Zugang ( nur NTP Protokoll) nach außen auf der FW erlauben. Aber das musst du selbst entscheiden.
LG
ZitatZum NTP, selbst wenn der Rpi ein Geräte WLan verwalten soll, sollte der Zugang zu NTP immer ermöglicht werden (Sonderegel in der FW). Den gerade Geräte brauchen oft genaue Uhrzeit, so wie der Raspi selbst! Wenn du da Sicherheitsbedenken hast, kannst ja alle Geräte in ein Vlan geben ( sofern deine Netzwerkkomponenten das ermöglichen ) und nur einen NTP Zugang ( nur NTP Protokoll) nach außen auf der FW erlauben. Aber das musst du selbst entscheiden.
Danke, ja... werde mir da was überlegen müssen. Oder der Raspi wird neben Accesspoint auch NTP-Server für die Geräte des Geräte-WLANs. Klar, dass die Geräte die richtige Uhrzeit haben sollten, wäre ja sonst "eher" unzuverlässig. Vlan wird schwierig, der große Switch kanns schonmal nicht, höchstens die Fritzbox... (6490 von KD).
Werde mal schauen, dass ich an Sonoff-Geräte zum Testen komme :-)
wenn du dir Sonoff bestellst, dann bestelle in Etappen das du immer unter 25.- € bleibst, dann hast du keine zusätzliche Gebühren ( Einfuhrumsatzsteuer und Gebühren der Spedition ) .
Betreffend NTP kannst ja die Fritzbox zum NTP (http://www.com-magazin.de/tipps-tricks/netzwerk/fritzbox-zentralen-zeit-server-nutzen-1003528.html) machen wenn dein Modell das schon kann.
LG
Naja, der Bezug der Dosen scheint schwieriger als gedacht. Wie schon hier: https://forum.fhem.de/index.php/topic,67635.0/topicseen.html geschrieben, scheint der Shop nicht so richtig zu klappen, außerdem ists bei 12€ Versand fraglich, ob ich dann nicht besser die Einfuhrumsatzssteuer zahle...
Bei eBay gibts die Dosen auch für 13€ inkl. Versand, aber Lieferzeiten bis in den Mai hinein...
HM, sind doch alle Portofrei und 17-28 Tage ist ok für die Chinesen.
Ich bestelle auch öfters bei iTead direkt, da sind allerdings Portokosten fällig.
https://www.aliexpress.com/item/sonoff-dc220v-Remote-Control-Wifi-Switch-Smart-Home-automation-Intelligent-WiFi-Center-for-APP-Smart-Home/32744244327.html? (https://www.aliexpress.com/item/sonoff-dc220v-Remote-Control-Wifi-Switch-Smart-Home-automation-Intelligent-WiFi-Center-for-APP-Smart-Home/32744244327.html?)
LG
Achso, dachte du meintest ITead direkt. Wie gesagt, scheint bei mir momentan nciht zu gehen... muss mal schauen :-) Dankeschön!
Hallo zusammen,
hat schon jemand mal den Stromverbrauch vom Sonoff POW gemessen? Ich befürchte, dass aufgrund des verwendeten internen Netzteiles (Kondensatornetzteil?) recht viel Energie verloren geht. Idealerweise kann der ESP8266 ja um oder unter 0.5W bleiben. Ich würde jetzt so 1-2W vermuten.
Kann das jemand mal nachmessen? Am Besten nicht als "Inception" mit einem weiteren Sonoff POW, sondern mit einem recht genauen Messgerät, dass auch <1W messen kann ;)
Edit: Immerhin ist es ein sparsamer Flyback-Converter, jedoch mit nachgeschaltetem LDO :(
https://www.itead.cc/wiki/images/5/52/Sonoff_POW_Schematic.pdf (https://www.itead.cc/wiki/images/5/52/Sonoff_POW_Schematic.pdf)
Welche Spannung liegt denn vor dem LDO an? Hat das schonmal jemand (ohne Stromschlag) gemesssen? ;D
LG
Ich habe heute versucht das mit einem EKM265 nachzumessen, ist mir allerdings nicht gelungen.
Wenn ich den POW alleine anhänge, zeigt es mir 0 W an, hänge ich ein Steckerladegerät am POW an dann geht es auf 1.2 W.
Mach ich einen Gegentest, also POW + EKM265 + Handy Ladegerät dann habe ich 2,5 W + 1,2 Watt Eigenverbrauch EKM und der POW zeigt dann 4 Watt. Fällt die Leistung allerdings unter 3 Watt, dann pendelt der POW zwischen 0-3 Watt hin und her.
Das EKM265 kann eine Leistung bis 2650 Watt messen, entsprechend klein ist daher der interne Shunt, was sich dann bei kleinen Leistungen negativ auswirkt.
Wenn man hier genauere Daten haben will, muss man schon auf ein entsprechend geeichtes Messgerät zurück greifen. Für mich allerdings ist bei dem Preis des POW die Genauigkeit soweit ok und auch der Eigenverbrauch hält sich in Grenzen.
LG
Reinhart
Zitat von: Reinhart am 19 März 2017, 10:46:26
Ich habe heute versucht das mit einem EKM265 nachzumessen, ist mir allerdings nicht gelungen.
Hallo Reinhart,
vielen Dank für deine Bemühung. Vielleicht hat jemand ein besseres Messgerät ::).
Ich hatte noch überlegt, ob es sinnvoll sein könnte, das Relay per PWM anzusteuern, sobald es einmal angezogen hat. Damit könnte man auch etwas Energie sparen ;). Ich weiß aber nicht, wie gut die interne Versorgungsspannung gepuffert ist ;D. Laut Schaltplan sind es 330µF. Bei 1kHz Schaltfrequenz (bei der ESPEasy-Firmware) müsste das doch reichen ;D
http://embeddedgurus.com/stack-overflow/2009/11/lowering-power-consumption-tip-3-using-relays/ (http://embeddedgurus.com/stack-overflow/2009/11/lowering-power-consumption-tip-3-using-relays/)
Ich für meinen Weg geh da eine andere Richtung. Es ist schon richtig, wenn viele solcher Geräte sich im Einsatz befinden sind Sparmaßnahmen schon interessant, aber oft handelt man sich dabei zusätzliche Probleme ein und bei den kleinen Leistungen ist im Normalfall nicht viel zu holen, auch wenn sie 7 x 24 Stunden laufen. Ich lasse auch das Rasenmäher Netzteil den ganzen Winter durchlaufen (1,5-3 Watt) da einerseits die geringe Eigenwärme die Elektronik der Ladestation schützt und gleichzeitig eine Art kathodischer Korrosionsschutz am vergrabenen Draht liegt. Hier stellt sich die Frage, ob der Energieaufwand nicht doch besser zu verschmerzen ist und dafür die Lebensdauer um einige Jahre erhöht werden kann. Es kommt daher immer auf die Sichtweise an, auf was man mehr den Schwerpunkt legt.
Ich versuche daher an anderer Stelle Energie zu sparen, Austausch sämtlicher Heizungspumpen gegen Hocheffizienzpumpen, Überall nur mehr Led Lampen und wenn möglich das Licht mit Bewegungsmeldern rechtzeitig wieder abschalten. Bei Neuanschaffung hauptsächlich A+++, obwohl hier manchmal nachgerechnet werden sollte ob der Mehrpreis in den nächsten 10 Jahren sich rechnet. Meist haben solche Geräte nur einen psychische Wirkung und beruhigen einen das man wenigstens was dagegen unternommen hat. Das beste negative Beispiel waren hier die Energiesparlampen die schlechten Komfort boten und die Umwelt belasten. Habe auch alle 4 TV Geräte gegen moderne getauscht (Plasma und Bildröhren Geräte alle entsorgt).
Der Tausch einer einzigen Heizungspumpe erlaubt mir dafür Fhem mit allen Sensoren mehrere Jahrzehnte zu betreiben.
Jeder sieht das ein wenig anders, aber das ist meine persönliche Sichtweise.
LG
Zitat von: Elektrofreak am 16 März 2017, 10:05:27
Hallo zusammen,
hat schon jemand mal den Stromverbrauch vom Sonoff POW gemessen? Ich befürchte, dass aufgrund des verwendeten internen Netzteiles (Kondensatornetzteil?) recht viel Energie verloren geht. Idealerweise kann der ESP8266 ja um oder unter 0.5W bleiben. Ich würde jetzt so 1-2W vermuten.
Kann das jemand mal nachmessen? Am Besten nicht als "Inception" mit einem weiteren Sonoff POW, sondern mit einem recht genauen Messgerät, dass auch <1W messen kann ;)
Edit: Immerhin ist es ein sparsamer Flyback-Converter, jedoch mit nachgeschaltetem LDO :(
https://www.itead.cc/wiki/images/5/52/Sonoff_POW_Schematic.pdf (https://www.itead.cc/wiki/images/5/52/Sonoff_POW_Schematic.pdf)
Welche Spannung liegt denn vor dem LDO an? Hat das schonmal jemand (ohne Stromschlag) gemesssen? ;D
LG
Hallo, ich habe auf der Herstellerseite nachgeschaut und dort wird eine Stby. Leistungsaufnahme von < 1mW (1 milli Watt) angegeben.
https://www.itead.cc/wiki/Sonoff_Pow
Im Diagramm sieht man eindeutig, dass dies kein Kondensatornetzteil ist, sondern ein effizientes Schaltnetzeil welches aus einem Gleichrichter ASB8 mit anschließender Glättung C2, L1 und C3; einem Anschwingkreis bestehend aus R6, C6 und D1; Trafo EE10, welcher aus einer Primärspule (Pin 1 und 2), eine Spule (Pin 3 und 4) für den Regelkreis bestehen aus dem IC IW1700 und dem Schalttransistor Q1 und einer Sekundärspule mit anschließender Gleichrichtung, Glättung und einem 3,3V Spannungsregeler für den Betrieb der Logic. Daher ist eine Standby Leistungsaufnahme durch aus möglich und die geringe Leistungsaufnahme des ESP8266 spricht auch dafür.
http://dl.itead.cc/IM151116002/0A-ESP8266_Specifications_v4.1.pdf
Ich hoffe ich konnte ein wenig das Netzteil erklären und etwaige bedenken eines erhöhtem Standby Verbrauchs beseitigen.
Viele Grüße
Jörg
Danke für deine ausführliche Erklärung des Schaltnetzteils!
Hast du eine Idee warum beim getackteten Netzteil die 230V Minus hinter dem Gleichrichter mit dem Ground des 3.3V Reglers mit einem Kondensator verbunden sind? Das kann nämlich eine sehr gefährliche Sache werden wenn hier jemand basteln anfängt und weitere GPIOs nach außen führt. Was mir auffällt, ist das nur beim POW so ausgeführt.
LG
Reinhart
Der POW ist mit den 230V verbunden, da das messende IC direkt mit 230V verbunden ist. Deshalb sollte man den POW nicht mit weiteren Sensoren verwenden, die nicht isoliert sind!
Ich habe mir den POW jetzt auch mal genauer angesehen und einen zum Testen bestellt... Aber mal ganz dumme Frage: Wie setzt ihr den ein? In die UP-Dose passt er ja wohl nicht, also Netzkabel durchschneiden und zwischen rein klemmen oder wie?
Ja, genau so.
LG
Hallo zusammen,
ich habe nun auch 2 Sonoff Pow's und einen davon auch schon im Einsatz.
Danke für den Wiki Beitrag der hat gut geholfen.
Jetzt kenne ich das von meinen anderen Steckdosen mit Leistungsmessung so, dass immer der Gesamtverbrauch übermittelt wird.
Bei Arends Sketch ist es ja so, dass Today und Yesterday übermittelt werden.
Für die Ermittlung wie wie Energie ein Waschgang verbraucht hat, würde ich jetzt den Today Wert vorher und nachher nehmen und die Differenz ist das was ich suche.
Habe zu Testzwecken eingestellt, dass mqtt alle 10 Sekunden Werte liefert.
Wisst ihr, wie oft der Pow die Messwerte an den Broker übermitteln kann?
Außerdem möchte ich in FHEM auch den Gesamtverbrauch mit in einem Reading des Devices haben.
Wie habt ihr das gelöst?
Bei jeder Änderung des Readings Yesterday diesen in ein neues userReading aufaddieren?
Wenn jemand soetwas schon umgesetzt hat dann wäre ich froh über Eure definition des Devices.
Ggf. habe ich da ja noch das ein oder andere zu optimieren.
Bisher sieht das device bei mir so aus:
defmod KG.wr.SPow.Waschmaschine MQTT_DEVICE
attr KG.wr.SPow.Waschmaschine IODev SYS.gw.MQTT.01
attr KG.wr.SPow.Waschmaschine devStateIcon on:message_socket_on_off@green off:message_socket_off@red
attr KG.wr.SPow.Waschmaschine eventMap ON:on OFF:off
attr KG.wr.SPow.Waschmaschine group Steckdosen
attr KG.wr.SPow.Waschmaschine icon measure_power
attr KG.wr.SPow.Waschmaschine publishSet ON OFF cmnd/KG.wr.SPow.Waschmaschine/POWER
attr KG.wr.SPow.Waschmaschine qos exactly-once
attr KG.wr.SPow.Waschmaschine retain 1
attr KG.wr.SPow.Waschmaschine room Keller,MQTT
attr KG.wr.SPow.Waschmaschine subscribeReading_ENERGY tele/KG.wr.SPow.Waschmaschine/ENERGY
attr KG.wr.SPow.Waschmaschine subscribeReading_LIGHT stat/KG.wr.SPow.Waschmaschine/LIGHT
attr KG.wr.SPow.Waschmaschine subscribeReading_state stat/KG.wr.SPow.Waschmaschine/STATE
attr KG.wr.SPow.Waschmaschine userReadings power:Power.* { ReadingsVal($name,"Power",0);; }
attr KG.wr.SPow.Waschmaschine webCmd on:off
Ist halt mein erstes MQTT Device von daher tu ich mich schwer und bin unsicher.
Grüße Christian
Hallo Christian!
Zur Ermittlung deiner Waschmaschine ist dein Gedankengang völlig richtig, die Schwierigkeit ist nur das du ein Programm brauchst, dass ermittelt wenn die Waschmaschine fertig ist. Dazu gibt es hier einige gute Beispiel im Forum. Ich habe auch so eines mit einem Pow laufen.
Dein zweiter Wunsch ist ebenfalls realisierbar.
Nimm dazu als Beispiel das Modul "average", dann hast du einmal einen fortlaufenden Zählerstand ( Power_cum_day ).
Dann nimm dem ElectricityCalculator und schon hast jede Menge an Verbrauchsdaten die du wünschst (Tag, Monat, Jahr, Preis etc.)
so etwa:
define KG.wr.SPow.Waschmaschine_CURRENT_POWER average KG.wr.SPow.Waschmaschine:Power.*
erzeugt Zähler für den KG.wr.SPow.Waschmaschine.
define myElectricityCalculator ElectricityCalculator KG.wr.SPow.Waschmaschine:Power_cum_day:.*
attr myElectricityCalculator BasicPricePerAnnum 102
attr myElectricityCalculator Currency €;
attr myElectricityCalculator ElectricityCounterOffset 0
attr myElectricityCalculator ElectricityKwhPerCounts 0.001
attr myElectricityCalculator ElectricityPricePerKWh 0.17
attr myElectricityCalculator MonthOfAnnualReading 5
attr myElectricityCalculator MonthlyPayment 150
attr myElectricityCalculator ReadingDestination CounterDevice
attr myElectricityCalculator SiPrefixPower W
attr myElectricityCalculator room Energie
das aktiviert dann den Kalkulator und du erhältst deine gewünschten Daten mit denen kannst du dann machen was du willst. Plot, als Log speichern. etc. Lies dir dazu den entsprechenden Thread damit du besser verstehst was das Modul alles macht.
LG
Reinhart
Betreffend der Waschmaschine ist das mein Code:
###########################################
## Waschmaschine Überwachung ##
###########################################
#Dummy HR_WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
define HR_WaschmaschineWatt dummy
attr HR_WaschmaschineWatt room Waschmaschine
#Dummy HR_WaschmaschineWatt mit Werten versorgen
define HRWaschmaschineWattSet notify Sonoff_Pow4:Power.* {my $power =ReadingsVal("Sonoff_Pow4","Power","");; fhem ("set HR_WaschmaschineWatt $power");; fhem ("set HR_Waschmaschine_Pwr $power")}
define HR_Waschmaschine_Pwr dummy
attr HR_Waschmaschine_Pwr room Waschmaschine
#Dummy HR_WaschmaschineBetrieb definieren
define HR_WaschmaschineBetrieb dummy
attr HR_WaschmaschineBetrieb devStateIcon on:general_an off:general_aus
attr HR_WaschmaschineBetrieb event-on-change-reading state
attr HR_WaschmaschineBetrieb room Waschmaschine
#Dummy HR_WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
define HRWaschmaschineBetriebAn notify Sonoff_Pow4:Power.* {fhem ("set HR_WaschmaschineBetrieb on;; setstate HRWaschmaschineAutoOff defined") if (ReadingsVal("Sonoff_Pow4","Power","") >= 30 && Value("HR_WaschmaschineBetrieb") ne "on")}
#Dummy HR_WaschmaschineHoherVerbrauch definieren
define HR_WaschmaschineHoherVerbrauch dummy
attr HR_WaschmaschineHoherVerbrauch devStateIcon on:general_an off:general_aus
attr HR_WaschmaschineHoherVerbrauch event-on-change-reading state
attr HR_WaschmaschineHoherVerbrauch room Waschmaschine
# HR_Waschmaschine_Pwr
#Dummy HR_WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
define HRWaschmaschineHoherVerbrauchAn notify Sonoff_Pow4:Power.* {fhem ("set HR_WaschmaschineHoherVerbrauch on;; setstate HRWaschmaschineAutoStandby defined") if (ReadingsVal("Sonoff_Pow4","Power","") >= 5 && Value("HR_WaschmaschineBetrieb") eq "on")}
#Wert aus dem Reading "energy" von HR_Waschmaschine_Pwr in das Reading "energy" von HR_WaschmaschineBetrieb schreiben sobald der Betrieb startet
define HRWaschmaschineBetriebEnergyAktualisieren notify HR_WaschmaschineBetrieb:on {my $power=ReadingsVal("Sonoff_Pow4","Today","0");; fhem ("setreading HR_WaschmaschineBetrieb energy $power")}
#Dummy HR_WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
define HRWaschmaschineHoherVerbrauchAus notify Sonoff_Pow4:Power.* {fhem ("set HR_WaschmaschineHoherVerbrauch off") if (ReadingsVal("Sonoff_Pow4","Power","") < 5 && Value("HR_WaschmaschineBetrieb") eq "on")}
#Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
define HRWaschmaschineAutoStandby watchdog HR_WaschmaschineHoherVerbrauch:off 00:15 HR_WaschmaschineHoherVerbrauch:on set HR_WaschmaschineBetrieb standby;; set MyTTS tts die Waschmaschine ist nun fertig
attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
attr HRWaschmaschineAutoStandby room Waschmaschine
###############################
#Pushover-Notification bei abgeschlossenem Waschvorgang verschicken - token und user ist bei jedem anders und muss entsprechend geändert werden
define HRWaschmaschineWaschvorgangAbgeschlossenPushover notify HR_WaschmaschineBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal("Sonoff_Pow4","Today","0")-ReadingsVal("HR_WaschmaschineBetrieb","energy","0"))*ReadingsVal("HA.EuroProKWH","state","");; my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100 ;; fhem("setreading HR_WaschmaschineBetrieb AktuellerBetriebEur $aktuellerbetriebeur");; DebianMail("FHEM Waschmaschine ist fertig","Die Waschmaschine ist fertig! Betriebskosten: $aktuellerbetriebeur€") }
#HR.Waschmaschine 5 (15) Minuten nach dem letzten Waschgang vom Strom trennen
define HRWaschmaschineAutoOff watchdog HR_WaschmaschineBetrieb:standby 00:15 HR_WaschmaschineBetrieb:on set HR_WaschmaschineBetrieb off
attr HRWaschmaschineAutoOff regexp1WontReactivate 1
attr HRWaschmaschineAutoOff room Waschmaschine
#Dummy für Euro pro KWH definieren
define HA.EuroProKWH dummy
attr HA.EuroProKWH room Waschmaschine
Du musst natürlich das für deine Devicenamen anpassen, hier heißt der POW "Sonoff_Pow4". Die Berechnung der Kosten änderst halt in der Pushover-Notification in KWH. Das Problem bei der ganzen Sache ist, dass sich jede Waschmaschine anders verhält und somit die Ende Erkennung unterschiedlich sein kann. Dazu einfach die Zeiten anpassen, hier sind es 15 Minuten wenn kleiner 5 Watt. Der Code ist nicht von mir, sondern wurde lediglich aus dem Forum für den Pow angepasst. Ich musste ihn mehrmals lesen um ihn richtig zu verstehen und ist eigentlich schon sehr hintereinander verschachtelt.
Ich muss dazu aber sagen, dass ich vorher mit einem HM Leistungsmesser experimentiert habe und da war die Ende Erkennung wesentlich besser, weil der auch kleinere Leistungen besser erkannt hat. Der Pow tut sich bei Werten < 5 Watt schon sehr schwer.
In der Grafik siehst du eine typische Leistungskurve meiner Waschmaschine, die je nach Programm und Waschmaschine unterschiedlich aussehen kann. Meine Waschmaschine hängt zB. am Warmwasser und benötigt weniger elektrische Heizenergie.
LG
wie löst ihr bei euren POWs die sommerzeitumstellung?
momentan ists ja so das der POW mit unveränderter NTP zeit den tageszähler erst um 01:00 zurücksetzt
ein manuelles setzen der timzone auf 2 funktioniert ja, aber praktisch ists halt nicht...
Zitat von: fl_Indigo am 12 Mai 2017, 08:41:10
wie löst ihr bei euren POWs die sommerzeitumstellung?
momentan ists ja so das der POW mit unveränderter NTP zeit den tageszähler erst um 01:00 zurücksetzt
ein manuelles setzen der timzone auf 2 funktioniert ja, aber praktisch ists halt nicht...
Mit Sonoff Tasmota Command --> Timezone | 99 | Use Daylight müsste das gehen.
Billy
Hallo,
Zitat von: Reinhart am 08 Mai 2017, 21:32:44
Nimm dazu als Beispiel das Modul "average", dann hast du einmal einen fortlaufenden Zählerstand ( Power_cum_day ).
Dann nimm dem ElectricityCalculator und schon hast jede Menge an Verbrauchsdaten die du wünschst (Tag, Monat, Jahr, Preis etc.)
das waren die richtigen Hinweise, vielen Dank dafür.
Das Script den Waschmaschinenstatus habe hier hierher: https://forum.fhem.de/index.php/topic,39498.0.html das passt auch alles sehr gut.
Jetzt muss ich mal beobachten wie es läuft.
Danke
Zitat von: Billy am 12 Mai 2017, 11:16:58
Mit Sonoff Tasmota Command --> Timezone | 99 | Use Daylight müsste das gehen.
Billy
treffer :D
soweit hab ich nicht gelesen im wiki...
danke!
Hallo Reinhart,
Zitat von: Reinhart am 08 November 2016, 20:28:16
Phython (http://domoticx.phoenixinteractive.nl/software/python/python-2.7.msi.7z) am PC installieren, Version 2.7 (C:\Program Files (x86\Phython)
serielle Bibliothek (http://domoticx.phoenixinteractive.nl/python/libraries/pyserial/pyserial-2.7.win32.exe.7z) hinzufügen (als Admin installieren)
ESPTool herunterladen (http://domoticx.phoenixinteractive.nl/software/esptool/esptool%20%28github%29%20%28gedownload%20op%202016-01-02%29.7z), ich habe es einfach ins Verzeichnis zu Phython kopiert (C:\Program Files (x86\Phython)
...
Das Ganze geht RuckZuck und auch die Installation von Phyton sollte innerhalb von 10 Minuten zu schaffen sein.
Hier etwas weiter unten (http://www.esp8266.com/wiki/doku.php?id=loading_firmware) gibt es auch eine Abkürzung:
also includes a pre-built Windows executable, download siehe github (https://github.com/DonKinzer/esp_tool/raw/master/Windows/esp_tool.exe).
Gruß PeMue
ja Danke, da sind auch die Auswahlparameter schön im Helpfile erklärt.
Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. Alle Rechte vorbehalten.
C:\Users\Reinhart>C:\Users\Reinhart\Downloads\esp_tool.exe
Invocation: (V0.1)
esp_tool [[<options>] [<operation>] [<file>]]...
where <options> are:
-h --help display this information
-p<port> --port=<port> specify the COM port, e.g. COM1 or 1
-b<speed> --baud=<speed> specify the baud rate
-a<addr> --address=<addr> specify the address for a later operation
-s<size> --size=<size> specify the size for a later operation
-e<elf> --elf-file=<elf> specify an ELF file to process
-fs<size> --flash-size=<size> Flash size (256K, 512K, 1M, 2M, 4M, 8M)
-ff<freq> --flash-freq=<freq> Flash frequency (20M, 26M, 40M, 80M)
-fm<mode> --flash-mode=<mode> Flash mode (QIO, DIO, QOUT, DOUT)
-fp<val> --flash-parm=<val> combined Flash parameters
-l<file> --log=<file> log device output in monitor mode
-m[<speed>] --monitor[=<speed>] after operations, enter monitor mode
-r<reset> --reset=<reset> set the reset mode (none, auto, ck, wifio)
-r0 --no-run do not run device after operations
-r1 --run run device after operations (default)
-q --quiet suppress progress reporting
-x<code> --exit=<code> set the character code for monitor exit
where <operation> is one of:
-cp<file> --padded=<file> combine images into a padded image file
-cp+<file> --padded+=<file> append images to an existing padded file
-cs<file> --sparse=<file> combine images into a sparse image file
-cs+<file> --sparse+=<file> append images to an existing sparse file
-od --dump-mem write the content of memory to a file
-oe[<size>] --erase-flash[=<size>] erase all or part of Flash memory
-of --flash-id report Flash identification information
-oi --image-info output information about an image
-om --read-mac report the station MAC address
-or --read-flash read Flash memory, write to a file
-os --elf-info output section information from ELF file
-os<sect> --section=<sect> extract data from sections of ELF file
-ow --write-flash write files to Flash memory (default)
-ox[<file>] --extract[=<file>] extract ELF file sections to create images
-or --read-flash read Flash memory, write to a file
LG
Reinhart
ich hab da mal eine Frage....
Meine Sonoff´s POW sind angekommen und ich breche mir die Finger.....
in den Readings steht:
ENERGY
{"Time":"2017-07-30T12:27:09", "Total":1.512, "Yesterday":1.486, "Today":0.025, "Period":3, "Power":43, "Factor":0.97, "Voltage":233, "Current":0.191}
in den Internals:
STATE
aktuell: 0.0 W Tag: 0.00 Kw/h
für die "alten Hasen" wahrscheinlich eine Kleinigkeit, aber weder im WIKI, noch in den Tiefen des Forums finde ich eine Lösung
wie bekomme ich die Readigs in STATE angezeigt ?!
in der config steht:
{sprintf("aktuell: %.1f W Tag: %.2f Kw/h",ReadingsVal($name,"Power",undef),ReadingsVal($name,"Today",undef))}
(habe ich aus dem wiki übernommen)
allerdings werden
2017.07.30 15:28:56 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 849) line 1.
verursacht.
Vielen, vielen Dank.....
du musst den Jsonstring in ein Reading einlesen lassen, etwa so:
define ej3 expandJSON Sonoff.*:(ENERGY.*|SENSOR.*):.{.*} (Power|Current|Voltage|Yesterday|Today|AnalogInput0)
sofern dein Modul mit dem Namen "Sonoff" beginnt. Es werden dann alle im Filter (Power, Current.....) angegeben Readings eingelesen und angelegt.
Siehe dazu den Thread hier (https://forum.fhem.de/index.php/topic,69067.0.html) oder hier (https://forum.fhem.de/index.php/topic,66761.0.html). Der Hinweis mit dem Link steht aber auch im Wiki (https://wiki.fhem.de/wiki/Sonoff#MQTT_in_FHEM_einrichte).
LG
du bist genial- das war´s.
vielen, vielen dank !!!!!
Hauptsache es geht jetzt!
Noch ein Tipp, wenn du mehrere Sonoff Module hast, dann benenne sie alle mit gleichem Namen beginnend, zB: Sonoff_Pow1, Sonoff_Pow2 dann funktioniert das Modul expandJson für alle Module mit einer Definition. Hast du noch Luftfeuchte oder Temperatur dabei dann kann das Filter so aussehen.
define ej3 expandJSON Sonoff.*:(ENERGY.*|SENSOR.*):.{.*} (Power|Current|Voltage|Yesterday|Today|AnalogInput0|RSSI|.*Humidity|.*Temperature|Counter1|pwr|cnt)
Viel Spaß mit den Modulen.
LG
Reinhart
genau...da hing es heute vormittag bei mir. habe mehrere sonoff pos's eingerichtet. und erst nach deinem tipp hatte ich es dann auch son gemacht.
nochmals- vielen dank !!!!!
genau...da hing es heute vormittag bei mir. habe mehrere sonoff pos's eingerichtet. und erst nach deinem tipp hatte ich es dann auch son gemacht.
gleichzeitig schicke ich die daten hoch zu thingspeak...tadellos.
nochmals- vielen dank !!!!!
Sorry, wenn ich mich hier hineinhänge. Ich habe schon Probleme, das Tool überhaupt zu flashen. Ich muss zugeben, dass ich die 53 Seiten des ersten Threads zu Sonoff POW nur zum Teil gelesen habe und mich dann direkt dem Wiki zugewandt (und dort auch schon kleinere Teile bearbeitet) habe. Aber ich kapiere den Anfang nicht:
- Es gibt anscheinend einen Streit darüber (auch in einem anderen Thread), ob man beim Flashen nun eine externe Stromversorgung braucht. Auf keinen Fall soll man 230 V nehmen, das ist einleuchtend. Aber wieso stehen dann im Wiki Zeichnungen und Fotos mit Verkabelungen, die gerade auf die externe Stromversorgung verzichten?! Und welche Stromversorgung nimmt man (geht zB ein arduino oder liefert der zu wenig mA)?
- Dann gibt es zwei Arten von Firmware, eine die nicht mehr weiterentwickelt wird und Tasmota. Anscheinend werden beide nicht gleich geflasht. Man soll das neuere nehmen. Da steht dann im Wiki: "Zum compilieren wird in der Arduino Umgebung auch die ArduinoJson Library 5.6.4+ benötigt. Eine genaue Anleitung kann hier nachgelesen werden." Hier verweist aber nicht auf die Anleitung, sondern eine komplette github-Seite, in der alles mögliche steht. Besagte Anleitung habe ich da nicht gefunden.
Weiter: "Es sollte stets die aktuelle Version der Arduino Umgebung verwendet werden, bzw. die Librarys auf Letztstand gehalten werden. Wer selber mit der Arduino IDE compilieren will" und dann aber gleich zwei Zeilen weiter "Es empfiehlt sich eine fertige Binary von ESPEasy aufzuspielen. In diesem Wiki wurde R140 verwendet." Ja wie nun? Soll ich jetzt selber kompilieren oder die fertige binary nehmen? Ich dachte, das sind verschiedene Paar Schuhe? Wann mache ich jetzt was und was wird empfohlen? - Fertige binary klingt immer gut, also weiter. "Siehe dazu auch den Link von ESPEasy und das Handbuch für den Flasher." Nur finde ich bei beiden links keine fertige binary, sondern nur Hinweise, wie ich kompiliere. Aber das wollte ich doch gerade nicht ?!
- "In manchen Versionen von ESPEasy (zB.R120) ist auch ein Flasher beigelegt" das klingt so, als ob ich bei alibaba ESPeasy kaufe und dann was beiliegt. Aber ist ESPeasy nicht eine Software? Und wie liegt dann was bei?
Ich bin wirklich totaler dummy, echt. Aber kann sich mal jemand von Euch erbarmen und - gewissermaßen für Doofe, und da meine ich mich - beschreiben, was man hier tun muss? Ich würde auch versuchen, das im Wiki zu beschreiben. Da geht es momentan eher zu wie Kraut und Rüben...
PS Ich habe einen Sonoff POW, gerade frisch aus Schina.
PS Das gute Stück.
Hallo andies,
für den POW würde ich immer Tasmota nehmen.
ESPeasy kann glaube ich den verbauten Stromsensor nicht händeln.
Ich habe 4 POWs am laufen, alle mit Tasmota
und flashen hat bei allen mit dem FTDI ohne zusätzliche
Spannungsversorgung funktioniert.
Ist aber anscheinend nicht überall so.
P.S. Weiterentwicklung von ESPeasy ist ESPeasy-Mega
Hab ich auf den einfachen Sonoff's laufen
Vielen Dank! Heißt das: Entweder MQTT, Tasmota oder ESPEasy? Oder bringe ich da Firmware und Software durcheinander? (Das müsste mal im Wiki richtig beschrieben werden.) Und wenn ich Tasmota nehme, wie lade ich das drauf? Es heißt "Only Flash Mode DOUT is supported.", was mich jetzt nicht weiter stört - muss man halt aufpassen. Aber wo ist denn nun die Soft-/Firmware?
Es heißt da "Best practice to implement is: Open the webpage to your device" und wie öffne ich das? Auch das "to" vom device verstehe ich nicht. Ich habe die Sonoff-Software drauf und nicht die Originale, war das ein Fehler (es gab da ein eigenes Netzwerk, das der ESP erstellt hat, das ist jetzt natürlich verschwunden). Der Gerät hat die IP 192.168.2.11 und wenn ich diese ansteuere, sehe ich nix.
Zitat von: andies am 11 August 2017, 22:59:25
Vielen Dank! Heißt das: Entweder MQTT, Tasmota oder ESPEasy?
Hallo,
sowohl Tasmota, als auch EspEasy bringen einen MQTT mit. Bei EspEasy brauchst Du MQTT nicht, da hierfür die EspBridge als Fhem-Modul entwickelt worden ist. Bei Tasmota brauchst Du MQTT.
Für EspEasy gibt es im Playground ein Modul, das auch den Pow handeln kann.
Tamota und EspEasy sind die Firmware für den Sonoff. Die muss auf den Sonoff geflasht werden. MQTT und EspBridge sind jeweils Fhem-Modul, wobei Du für MQTT noch das entsprechende Debian Package brauchst (Ist im Fhem Wiki zu MQTT beschrieben).
Für die EspBridge findest Du einen eigenen Thread im Forum.
Grüße Jörg
Und warum nehmt ihr nicht einfach Tasmota ?
Die andere Firmware wird nicht mehr weiterentwickelt. Bei Tasmota hingegen werden andauernd die neuesten Sonoff Devices hinzugefügt und auch Bug-Fixing betrieben.
Gruß
Dlay
Zitat von: Dlay am 12 August 2017, 00:15:49
Die andere Firmware wird nicht mehr weiterentwickelt.
Hast mein Beitrag weiter vorn nicht gelesen?
Hier geht es weiter: https://github.com/letscontrolit/ESPEasy/releases (https://github.com/letscontrolit/ESPEasy/releases)
Ich habe jetzt den Artikel im Wiki umgeschrieben und bin zumindest so weit gekommen, dass ich den Sketch kompilieren konnte. Dabei muss man aber sagen, dass diverse Fehlermeldungen zu überwinden waren, die schon einiges Verständnis im Umgang mit dem arduino voraussetzen. Das habe ich daher auch im Wiki-Artikel vermerkt.
Gesendet von iPad mit Tapatalk Pro
Bin im Moment am umsteigen von Arduino IDE auf Platformio
zum kompilieren, weil sowohl bei ESPeasy-Mega als auch bei
Tasmota im Download Komplettpakete für Platformio enthalten sind.
Der Vorteil: man braucht keine Libs zusammen zu suchen
keine Verzeichnise umbenennen.
Auch flashen kann man damit, wenn man die ini entsprechend anpasst.
Nähere Infos: https://forum.fhem.de/index.php/topic,73701.0.html (https://forum.fhem.de/index.php/topic,73701.0.html)
Gegenüber der Arduino IDE sehe ich auch nur Vorteile. Atom als Editor kann man auch in weiten Grenzen anpassen.
Hatte es mal kurz drauf aber habe nicht gefunden wie ich da für Tasmota 1m (NoSpiff) einstellen/ hinzufügen kann und auf DOut stellen....
Gesendet von iPhone mit Tapatalk
Zitat von: pink99panther am 12 August 2017, 16:53:29
Ist in der ini schon vorgegeben.
Vorletzte Zeile (1m0).
In der Zeile davor das dout
[env:sonoff]
platform = espressif8266
framework = arduino
board = esp01_1m
board_flash_mode = dout
build_flags = -Wl,-Tesp8266.flash.1m0.ld -DMQTT_MAX_PACKET_SIZE=512
lib_deps = PubSubClient, NeoPixelBus, IRremoteESP8266, ArduinoJSON
Habt Ihr alle eine externe Stromversorgung? Ich kriege ständig eine Fehlermeldung beim flashen:
Arduino: 1.8.1 (Mac OS X), Board: "Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DOUT, 115200, 1M (no SPIFFS), nodemcu, Disabled, None"
Build-Optionen wurden verändert, alles wird neu kompiliert
Der Sketch verwendet 483396 Bytes (47%) des Programmspeicherplatzes. Das Maximum sind 1023984 Bytes.
Globale Variablen verwenden 43196 Bytes (52%) des dynamischen Speichers, 38724 Bytes für lokale Variablen verbleiben. Das Maximum sind 81920 Bytes.
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
und ich vermute, dass das an der unzureichenden Versorgung liegt.
Hast Du alle Programme die auf die COM zugreifen könnten geschlossen?
Einzigst der serielle Monitor der Arduino IDE stört nicht, wenn du damit flashst.
Ja, denke ich doch. Ich habe nur Chrome offen (ich arbeite auf einem Mac) und arduino.
Am Sonoff POW den Knopf gedrückt halten
den USB-Stecker vom FTDI einstecken
Flshvorgang starten
Knopf erst los lassen wenn geflasht ist.
Habe ich genau so gemacht! Problem besteht weiter.
Die Verbindung hast du
TX -> RX
RX -> TX
???
Nicht, dass du dich vertan hast!
Habe ich auch getestet (gab eine sehr umfangreiche Fehlermeldung, war also eindeutig korrekt). Auch eine externe Versorgung mit 3.3V ergibt weiter das gleiche Problem.
Ich glaube inzwischen, dass der USB-TTL das Problem ist (siehe auch http://arduino-esp8266.readthedocs.io/en/latest/faq/a01-espcomm_sync-failed.html). Könnt Ihr mir mal sagen, woher Ihr Eure bezogen habt?
Ich hatte zB wochenlang Probleme mit einem preiswerten arduino-Clone (und der kam nicht aus China, sondern von pilight). Erst, als ich das originale Teil gekauft hatte, lief das flashen. Manchmal sind es die preiswerten Chips, keine Ahnung.
Gesendet von iPad mit Tapatalk Pro
Ich verwende den hier:https://www.amazon.de/gp/product/B00YMDN2Z6/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1 (https://www.amazon.de/gp/product/B00YMDN2Z6/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1)
Richtigen COM Port eingestellt bzw. wurde der auch erkannt ?
ZitatArduino: 1.8.1 (Mac OS X), Board: "Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DOUT, 115200, 1M (no SPIFFS), nodemcu, Disabled, None"
Bin jetzt nicht am PC aber steht hier nicht eigentlich der erkannte Port
Zitat von: TomLee am 12 August 2017, 21:49:06
Richtigen COM Port eingestellt bzw. wurde der auch erkannt ?
Das war es, danke. Ausgiebige Fehlermeldung sagt
pening port /dev/cu.usbserial-A9RCE5PE at 115200
error: cannot access /dev/cu.usbserial-A9RCE5PE
error: espcomm_open failed
und das soll der Port sein, siehe Bildschirmfoto. Ich habe den USB-TTL, den pink99panther hat. Kann es sein, dass der kaputt ist?
Ich habe jetzt einen anderen USB und ein anderes Kabel genommen. Die Fehlermeldung sieht anders aus, ergibt aber das gleiche Ergebnis
opening port /dev/cu.usbserial-A9RCE5PE at 115200
tcgetattr
tcsetattr
serial open
opening bootloader
resetting board
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
resetting board
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
resetting board
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
warning: espcomm_sync failed
error: espcomm_open failed
Da bin ich leider raus.
Was passiert an einem anderen anderen USB-Port?
Wurden die Treiber beim einstecken des USB-TTL auch automatisch installiert ?
So wie auf dem Bild im Anhang sollte das aussehen
Ich hatte einen vergleichbaren Fehler schon einmal und da war der billige Chip im arduino-Clone die Ursache. Daher vermute ich dasselbe hier auch.
Ich habe mit dem arduino und diesem Rechner schon diverse Attiny85 programmiert, also wird es mE weder an der IDE noch am USB liegen. Das Kabel war es ja auch nicht. Komisch ist zum Beispiel, dass ich das Kabel umstecke und sich der Port nicht ändert. Ich starte mal neu und solche Spielchen, aber ich vermute, ich muss bei sparkfun kaufen und eben nicht den Clonen.
Dass man damit so viel Zeit zersägt, neee.
Schaut mal auf eurem serial converter ob da der ch340 Chip drauf ist oder ein ftdi Chip. Und dem entsprechend die Treiber laden
Ftdi ist bei windoof dabei der ch340 China nicht
Gesendet von iPhone mit Tapatalk
schon geschaut, ist FTDI. Habe ich schon beim Kauf gemacht.
Ich vermute aber, dass selbst da noch Unterschiede bestehen. Die Widerstände, keine Ahnung.
Wenn ich ohne "Bootmodus" (also ohne den taster 3-7s und vor Einstecken USB gedrückt halten) den POW mit 3,3V verbinde, muss doch eigentlich die blaue LED leuchten, oder? Das macht sie nicht. Ob dann vielleicht der POW hinüber ist? Er kommuniziert aber mit der chinesischen Cloud...
Also die kleinen basic's leuchten mal kurz auf, wenn ich morgen wieder zuhause bin kann ich das am pow mal testen.
Die Arduino IDE steht auf Upload 54600
Ist der Fehler auch, wenn du da 115200 einstellst?
Ich flashe immer mit 115200
Teste mal den Bootloader
Seriellen monitor der IDE öffnen und auf 74880 stellen
VDD auf dem POW kurz abziehen und wieder verbinden
Dann sollte folgende Meldung erscheinen
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
Zitat von: pink99panther am 12 August 2017, 23:08:15
Ist der Fehler auch, wenn du da 115200 einstellst?
Ja, beides getestet.
Zitat von: pink99panther am 12 August 2017, 23:08:15
Teste mal den Bootloader
Da erscheint absolut nix. (Spannung liegt an, 3.39V)
Da muss irgend was kommen,
sonst kann es nicht funktionieren.
Bist Du sicher, dass dein MAC die virtuelle COM-Schnttstelle richtig initialisiert hat?
Gibt es beim MAC so was wie einen Gerätemanager ala wie bei Windoof
wo du nachschauen kannst?
Anhand des Fotos von ihm ist der korrekt installiert
Gesendet von iPhone mit Tapatalk
Ich bin absolut unsicher.
Ich habe ja mit dem USB bereits einen arduino nano (den CUL) sowie einen attiny85 programmiert. Das ging alles durch. Der Gerätemanager sagt, es sei alles im grünen Bereich.
Inzwischen ist es so, dass sich mein grandioses Gerät nicht mehr mit China verbinden kann und auch ein reset nicht mehr möglich ist. Jetzt kann ich raten: POW defekt oder USB-TTL-defekt.
Wenn in der arduino Software unter Port dev/(mit Nummer) erscheint läuft er auch.
Gesendet von iPhone mit Tapatalk
OK
dann die letzte Möglichkeit die mir einfällt:
TX und RX vertauschen und nochmal Bootloadertest
Die rote LED am USB-TTL blinkt, der serielle Monitor schweigt sich aus.
Wenn es mir bisher nicht geglückt ist, die neue Firmware hochzuladen und der POW genüsslich die blaue LED anlässt (mit langer Blinkfrequenz, also ca 8sec an - 0.5 sec aus - 8sec an usw), habe ich dann nicht vielleicht das Gerät begradigt?
PS Danke für Eure Hilfe, ich muss wohl beides neu ordern. Oder?
Welche Firmware versuchst du überhaupt zu flashen. Bin der Meinung Default Flash Flash Mode ist DIO/QIO. Glaube gelesen zu haben DOUT erst ab Version 5 im Falle Tasmota.
Ich hatte Version 5.2.2 und da darf man nur DOUT nehmen. Sonst würde das device kaputt gehen.
Gesendet von iPhone mit Tapatalk Pro
Man kann mit einem arduino einen USB-TTL simulieren (GND und Reset verbinden). Selber Fehler. Also liegt es entweder am POW oder an der Firmware, nicht aber am Konverter USB-TTL. Jedenfalls ist das Ding durch. Ich schreibe mal was auf der Seite von Theo, vielleicht hat er noch eine Idee.
lade dir auf jeden Fall die neueste Tasmota Version 5.5.2c , es wurde ab 5.3.0 einiges gefixt!
5.5.2c
* Fix Sonoff Pow intermittent exception 0
5.3.0 20170715
* Use default flashmode DOUT to solve restart hangs on esp8285 chips (#453, #598)
LG
Die hatte ich!
Gesendet von iPhone mit Tapatalk Pro
Ich habe jetzt (auch in einem anderen Thread) esptools verwendet und dann kam
sudo python esptool.py -p /dev/cu.usbserial-A9RCE5PE write_flash 0x00 firmware-combined.bin
esptool.py v2.1-beta1
Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
Beitrag editieren
und ich glaube, das war es jetzt. Oder?
So
Hab jetzt zum testen auch mal ESPeasy mit der Arduino IDE auf einen POW gebrutzelt.
Der POW ist damit seeeeeeehr schweigsam geworden.
Noch nicht einmal der Bootloader hat sich gemeldet.
Das kann ich garnicht verstehen, da der Flashvorgang mit der IDE sich mehrfach mit verschiedenen Einstellungen wiederholen lies.
Aber auch danach immer das große Schweigen, seriell und LEDs.
Wiederbelebung hat dann mit flashen von Tasmota über Platformio funktioniert.
Zitat von: pink99panther am 12 August 2017, 17:32:06
Die Verbindung hast du
TX -> RX
RX -> TX
???
Nicht, dass du dich vertan hast!
Oh, jetzt muss ich mich hundertmal entschuldigen, ich habe das in der Tat falsch gemacht. Das kommt davon, wenn man keine Ahnung hat und trotzdem weiter spielt. Ich habe jetzt (erst) angefangen, etwas über UART zu lesen und ich habe diese ganzen Bilder immer falsch interpretiert. Natürlich (?!) hatte ich TX mit TX und RX mit RX verbunden, so ein Mist.
Ist dadurch das Gerät im Eimer? Ich bin gerade unterwegs und kann es daher nicht testen. Heißt das umgekehrt: Es besteht noch Hoffnung?
Mann, bin ich doof. Entschuldigung. :o Entschuldigung. :-[ Entschuldigung. ::) Entschuldigung....
Da sollte nichts defekt sein.
Ist mir auch schon passiert.
Billy
Zitat von: andies am 13 August 2017, 20:55:29
Heißt das umgekehrt: Es besteht noch Hoffnung?
JA
Ich wage mich kaum das hier zu schreiben.
Ich stecke die Datenleitungen einfach wahllos drauf.
Funktioniert es ist es gut, wenn nicht wird umgesteckt.
Bin zu faul mir rauszusuchen wo was bei den Sonoff ist.
So, ich glaube, ich war erfolgreich. Danke noch einmal an alle für die Geduld mit einem noob wie mir:
esptool v0.4.9 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
setting board to ck
setting baudrate from 115200 to 115200
setting port from /dev/tty.usbserial to /dev/cu.usbserial-A9RCE5PE
setting address from 0x00000000 to 0x00000000
espcomm_upload_file
espcomm_upload_mem
opening port /dev/cu.usbserial-A9RCE5PE at 115200
tcgetattr
tcsetattr
serial open
opening bootloader
resetting board
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
Uploading 487568 bytes from /var/folders/l6/myrckv8d12z9_06fl49fm36h0000gn/T/arduino_build_277709/sonoff.ino.bin to flash at 0x00000000
erasing flash
size: 077090 address: 000000
first_sector_index: 0
total_sector_count: 120
head_sector_count: 16
adjusted_sector_count: 104
erase_size: 068000
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
setting timeout 15000
setting timeout 100
espcomm_send_command: receiving 2 bytes of data
writing flash
................................................................................ [ 16% ]
................................................................................ [ 33% ]
................................................................................ [ 50% ]
................................................................................ [ 67% ]
................................................................................ [ 83% ]
............................................................................... [ 100% ]
starting app without reboot
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
espcomm_send_command: receiving 2 bytes of data
closing bootloader
Na also
Wer sagt denn, dass der Frosch keine Haare hat :D ;)
Bitte noch einmal einen Blick ins Wiki werfen, ich habe da einiges geändert (vor allem, was ich nicht kapiert hatte) - nicht, dass sich neue Fehler eingeschlichen haben.
Gesendet von iPad mit Tapatalk Pro
Welchen Sinn hat denn "Power Factor"? Ich sehe, dass
Power = Current * Voltage * Power Factor
und dass sich Power Factor ständig (bei mir jedenfalls) ändert, aber wie genau wird das gemessen oder wieso wird es überhaupt gemessen? Im Wiki steht dazu nix.
PS Ich habe den Sonoff hinter einem DECT-Gerät hängen. Das wiederum meldet mir, dass der Eigenverbrauch des Sonoff im Dauerbetrieb 1W ist. Ich halte das für sehr viel. Kann das jemand bestätigen?
Erste Frage hat sich erledigt: https://github.com/arendst/Sonoff-Tasmota/wiki/Sonoff-Pow
Gesendet von iPhone mit Tapatalk Pro
Zitat von: andies am 15 August 2017, 06:58:35
PS Ich habe den Sonoff hinter einem DECT-Gerät hängen. Das wiederum meldet mir, dass der Eigenverbrauch des Sonoff im Dauerbetrieb 1W ist. Ich halte das für sehr viel. Kann das jemand bestätigen?
ja, das wird so in etwa hinkommen, ne nachdem ob das Relais angezogen ist oder nicht und die Led leuchtet. 1W sind am Tag auch 24 W/h, aber wenn man bedenkt das wir alle noch vor Jahren 100 W Glühbirnen hatten und die noch teilweise eingesetzt sind, dann ist das relativ.
Aber du hast schon recht, viele 1 W Standby Geräte brauchen schon etwas und aufs Jahr hochgerechnet sind es je nach Stromanbieter 4-6 Euro ( 24 x 365 x 0,67 Cent). Die Kühlschranktür schnell wieder schließen spart sicherlich mehr. Ebenso kann man die Abfragezyklen und somit die Sendezeit etwas herab drosseln, 15 Minutenabstände anstatt alle 30 Sekunden reichen und den meisten Fällen aus.
LG
Man kann mit einem "Sleep 50" in der Tasmota Konsole den Stromverbrauch auf 0.4 W reduzieren, bei gleichem Ansprechverhalten.
Funktioniert bei allen meinen Geräten einwandfrei. Aber Achtung: Der POW meldet dann keine korrekten ENERGY Werte mehr.
Des weiteren startet das Device beim setzten des Wertes neu. Also on the fly ändern fällt aus. Ich setze das Sleep 50 beim ausschalten des POW damit er Strom spart.
Siehe auch Tasmota Wiki:
https://github.com/arendst/Sonoff-Tasmota/wiki/Energy-Saving (https://github.com/arendst/Sonoff-Tasmota/wiki/Energy-Saving)
Gruß
Dlay
irgendwie beißt sich da aber die Katze in den Schwanz!
Ich benutze den Pow um Energie zu sparen, bzw. um dieses zu ekennen. Wenn ich nun beim Pow Energie spare indem ich ihn schlafen lege, dann sehe ich keinen Total Wert mehr und somit ist für mich der Sinn des Pow verloren.
LG
Kommt auf den Verwendungszweck an.
Bei permanenter Überwachung macht es natürlich keinen Sinn.
Ich messe ja z.b. nur meine Waschmaschine und meinen Geschirrspüler wenn sie in Betrieb sind. Wenn die Geräte aus sind kann der POW auch schlafen.
Gruß
Dlay
Gibt es eigentlich mittlerweile einen Weg, die POW ohne MQTT zu nutzen?
Die S20-Dosen laufen eigentlich ganz gut mit espeasy, mit MQTT wirkts mir für den Moment doch recht kompliziert in Bezug auf die Einrichtung...
Es gibt im Playground von EspEasy ein entsprechendes Modul. Ich habe allerdings noch nicht getestet wie gut es ist.
Gesendet von iPhone mit Tapatalk
Grüße Jörg
So kann ich aber nicht einfach die Binary nutzen - oder?
Ist wohl auch noch eher was für erfahrenere Nutzer, fehlt ja sicher noch die FHEM-Implementation dann (?)
Ich kann dir helfen bei mqtt, das ist nicht so schwer. Ich kannte das auch nicht und nun läuft alles.
Zitat von: szoller am 15 September 2017, 15:01:18
So kann ich aber nicht einfach die Binary nutzen - oder?
Ist wohl auch noch eher was für erfahrenere Nutzer, fehlt ja sicher noch die FHEM-Implementation dann (?)
Wenn Du möchtest erstelle ich Dir eine BIN-Datei. Wissen müsste ich dann nur für welchen ESP. Für die Integration in Fhem sorgt das Fhem-Modul EspBridge.
Grüße Jörg
Könntest Du oder vielleicht auch jemand anderes bitte eine aktuelle BIN Datei erstellen?
Für den Sonoff POW (8266) schön wäre für für 1 MB und 4 MB da ich einen bereits umgebaut habe und den anderen sicher auch irgendwann...
vielen Dank!
Das kann ich tun, ich sitze gerade am Rechner. Dazu bräuchte ich aber Deine WLAN-SSID und das Passwort und wenn Du das überhaupt schicken solltest, bitte per PM.
<EDIT> Wenn Du die arduino-IDE hast (kostet nix) und Dir die svn-Dateien holst, kannst Du Dir das auch am Rechner selber machen. Ich kann gern helfen, wobei im Wiki eine Menge steht. So mache ich das gerade.
sorry, ich dachte es ging um ESPEasy. Da kann man die SSID und PW beim ersten starten selbst einstellen...
hab wohl irgendwas überlesen.
danke Dir trotzdem.
lg
Hallo
Ich versuche mit dem POW den Zustand meines TV an FHEM zu melden um eine Ambiente Beleuchtung zu schalten.
Wenn der POW aber nur alle 300s Daten sendet klappt das nicht wirklich sinnvoll.
Ich will die Datensendefrequenz aber auch nicht auf zB 5s setzen nur um einmal am Tag zu erkennen, dass gerade der TV angeschaltet wurde.
Im Sonoff Wiki steht das Folgende:
Zusätzlich kann im Sketch auch das Feature "Power_Limit" aktiviert werden. Mit dem Power_Limit wird eine zusätzliche Nachricht erzeugt, wenn ein bestimmter einstellbarer Grenzwert über- oder unterschritten wird.
Es lassen sich dadurch Meldungen wie "Waschmaschine fertig" oder ähnliches ohne weitere Schwellwert Überwachungen in FHEM ableiten. Die Meldungen kommen in MQTT mit "POWER_LOW ON" bzw. "POWER_LOW OFF".
Ich finde im Sketch aber nirgends die Einstellmöglichkeit für den Schwellwert!
Kann mir jemand auf die Sprünge helfen?
Hallo,
schau dir dazu das Wiki von Theo (https://github.com/arendst/Sonoff-Tasmota/wiki/Commands#sonoff-pow) an, da sind alle spezifischen Befehle für das Limit aufgelistet. Du kannst das aber nicht im Web definieren, sondern musst die Limits in der Konsole eingeben. Ebenfalls kannst du sie auch "set" via FHEM setzen, aber zum Testen eignet sich wunderbar die Konsole.
Leider ändern sich die Einstellmöglichkeiten mit den Versionen öfters, was du jetzt brauchst ist vermutlich PowerHigh "Obergrenze in Watt"
LG
Hallo Reinhart
Das sieht vielversprechend aus!
Danke für die schnelle Antwort.
Werde es gleich mal ausprobieren!
Gruß
Axel
Hallo,
hat jemand von euch schon die Sonoff RF Bridge in FHEM eingebunden?
Habe die Bridge bereits geflasht und 2 keys angelernt komme aber nicht weiter.ich weiß nicht wie ich diese Kommandos in FHEM reinbringen kann :
stat/sonoffrf01/RESULT = {"RfKey1":"Default sent"}
Hallo zusammen,
ich habe mal eine "Anfängerfrage":
Die SONOFFs melden den Status ja mit "ON" oder "OFF" zurück, also groß geschrieben. Auch wenn man eventmap nutzt greift dieses nur auf das internal "STATE", aber nicht auf das reading "state". Also bei mir ist dann STATE auf on und state auf ON. Ich habe auch ein bissel mit dem Attribut stateformat experimentiert, aber es nicht hinbekommen, dass bei state auch on/off reingeschrieben wird.
Der Hintergrund meiner Frage: Ich habe eine SONOFF Steckdose in eine structure hinzugefügt und seitdem meldet dieses structure als Status immer "undefined", weil alle Geräte den Status "off/on" melden aber der SONOFF meldet "OFF/ON".
Kann mir jmd nen Tipp geben?
Besten Dank und viele Grüße
Hallo Michi240281
bei mir ist Reading state on / off
und STATE ON / OFF
Hier mal mein List
Internals:
IODev MyBroker
NAME WZ_Stehlampe
NR 196
STATE OFF
TYPE MQTT_DEVICE
READINGS:
2017-11-28 10:06:57 POWER OFF
2017-11-28 10:06:57 state off
2017-11-28 10:06:57 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/WZ_Stehlampe/POWER
values:
on
off
sets:
OFF
ON
off
on
subscribe:
stat/WZ_Stehlampe/POWER
subscribeExpr:
^stat\/WZ_Stehlampe\/POWER$
subscribeReadings:
stat/WZ_Stehlampe/POWER:
cmd
name POWER
Attributes:
IODev MyBroker
devStateIcon OFF:li_wht_off ON:li_wht_on
eventMap on:Ein off:Aus
icon light_floor_lamp@#FF6D00
publishSet on off cmnd/WZ_Stehlampe/POWER
stateFormat POWER
subscribeReading_POWER stat/WZ_Stehlampe/POWER
webCmd Ein:Aus
Zitat von: pink99panther am 28 November 2017, 10:13:03
Hallo Michi240281
bei mir ist Reading state on / off
und STATE ON / OFF
Hier mal mein List
Internals:
IODev MyBroker
NAME WZ_Stehlampe
NR 196
STATE OFF
TYPE MQTT_DEVICE
READINGS:
2017-11-28 10:06:57 POWER OFF
2017-11-28 10:06:57 state off
2017-11-28 10:06:57 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/WZ_Stehlampe/POWER
values:
on
off
sets:
OFF
ON
off
on
subscribe:
stat/WZ_Stehlampe/POWER
subscribeExpr:
^stat\/WZ_Stehlampe\/POWER$
subscribeReadings:
stat/WZ_Stehlampe/POWER:
cmd
name POWER
Attributes:
IODev MyBroker
devStateIcon OFF:li_wht_off ON:li_wht_on
eventMap on:Ein off:Aus
icon light_floor_lamp@#FF6D00
publishSet on off cmnd/WZ_Stehlampe/POWER
stateFormat POWER
subscribeReading_POWER stat/WZ_Stehlampe/POWER
webCmd Ein:Aus
Kann auch sein, dass es so rum war, vllt vertue ich mich gerade. Aber wie bekomme ich das dann kleingeschrieben hin?
Ungetestet
in der user_config.h
Zeile 41 auf
#define CFG_HOLDER 0x20171128
Zeile 90 91
#define MQTT_STATUS_OFF "off"
#define MQTT_STATUS_ON "on"
ändern
Neu kompilieren und flashen
Ok danke, werde ich testen!
Habe mal getestet, hat funktioniert.
Internals:
IODev MyBroker
NAME WZ_Stehlampe
NR 196
STATE off
TYPE MQTT_DEVICE
READINGS:
2017-11-28 15:18:01 POWER off
2017-11-28 15:18:01 state off
2017-11-28 15:18:01 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/WZ_Stehlampe/POWER
values:
on
off
sets:
OFF
ON
off
on
subscribe:
stat/WZ_Stehlampe/POWER
subscribeExpr:
^stat\/WZ_Stehlampe\/POWER$
subscribeReadings:
stat/WZ_Stehlampe/POWER:
cmd
name POWER
Attributes:
IODev MyBroker
devStateIcon off:li_wht_off on:li_wht_on
icon light_floor_lamp@#FF6D00
publishSet on off cmnd/WZ_Stehlampe/POWER
stateFormat POWER
subscribeReading_POWER stat/WZ_Stehlampe/POWER
webCmd on:off
Zitat von: pink99panther am 28 November 2017, 15:21:24
Habe mal getestet, hat funktioniert.
Internals:
IODev MyBroker
NAME WZ_Stehlampe
NR 196
STATE off
TYPE MQTT_DEVICE
READINGS:
2017-11-28 15:18:01 POWER off
2017-11-28 15:18:01 state off
2017-11-28 15:18:01 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/WZ_Stehlampe/POWER
values:
on
off
sets:
OFF
ON
off
on
subscribe:
stat/WZ_Stehlampe/POWER
subscribeExpr:
^stat\/WZ_Stehlampe\/POWER$
subscribeReadings:
stat/WZ_Stehlampe/POWER:
cmd
name POWER
Attributes:
IODev MyBroker
devStateIcon off:li_wht_off on:li_wht_on
icon light_floor_lamp@#FF6D00
publishSet on off cmnd/WZ_Stehlampe/POWER
stateFormat POWER
subscribeReading_POWER stat/WZ_Stehlampe/POWER
webCmd on:off
Super!!
Wofür braucht es die Änderung hier:
#define CFG_HOLDER 0x20171128
?
Zitat von: Michi240281 am 30 November 2017, 18:53:21
#define CFG_HOLDER 0x20171128
Das es sich dabei um ein Datum handelt hast Du gesehen.
Wenn das Älter als das im ESP hinterlegte ist greifen die Einträge in der user_config.h nicht
Ah ok!
Aber ich hatte das geflasht (beim 1. Mal) und hab da nix geändert...da war das Datum irgendwann 2016! ???
Beim ersten mal ist ja auch noch kein Datum im Flashspeicher was man vergleichen könnte.
Deshalb nimmt er dann die Einstellungen aus der user_config.h.
Danach nur, wenn ein neueres Datum in der user_config.h steht.
Ich habe jetzt einen SONOFF POW mit Tasmota geflasht und er läuft auch. Im Tasmota Menu habe ich dann als Modul "SonOff POW" ausgewählt und schon werden die Daten zum Verbrauch/Spannung etc. angezeigt. Ich habe weiterhin einen DS18b20 an den Pins angelötet wie ich das auch schon beim S20 gemacht habe. Allerdings wird mir hier nichts angezeigt... wenn ich das Modul SonOff Pow auswähle, kann ich bei den Pins nichts mehr auswählen....aber auch wenn ich den SonOff Basic wähle und dann den DS18B20 auswähle, kommen keine Werte. Was mache ich falsch bzw. was muss man da tun, damit des DS18b20 läuft?
Da machst du nichts falsch.
Das hat Theo extra verhindert, weil beim POW an den Sensoren dann
die Gefahr eines Stromschlags besteht.
Habe auch erst vor kurzem erfahren, dass es bei den anderen Modulen
eine Galvanische Trennung zum Netz gibt und beim POW halt nicht.
Also kann man am POW keine zusätzlichen Sensoren betreiben? Das wär ja blöd, weil meine Anwendung dann nicht funktioniert. Hab da nämlich einen Heizlüfter fürs Gartenhaus dran und wollte da mit dem DS18b20 ne Regelung draus machen, dass der dann heizt wenn Temperatur < x....
Mit der S20 geht das.
Verbrauch kannst ja über die Einschaltdauer errechnen.
Hallo
Mit PowerLow und PowerHigh triggere ich mit dem Sonoff Pow eine Ambientebeleuchtung in meinem Wohnzimmer, sobald der Fernseher eingeschaltet wird.
Es kommt allerdings machmal vor, dass die Beleuchtung vollkommen unmotiviert angeht.
Bei der Fehlersuch bin ich über die folgenen inkorrekten Einträge in der Sonoff Console gestolpert:
2017-12-18_16:04:45 Sonoff_Pow01 transmission-state: incoming publish received
2017-12-18_16:04:45 Sonoff_Pow01 MARGINS: {"PowerLow":"OFF"}
2017-12-18_16:04:45 Sonoff_Pow01 PowerLow: OFF
2017-12-18_16:04:46 Sonoff_Pow01 transmission-state: incoming publish received
2017-12-18_16:04:46 Sonoff_Pow01 MARGINS: {"PowerLow":"ON"}
2017-12-18_16:04:46 Sonoff_Pow01 PowerLow: ON
Das PowerLow wird innerhalb von einer Sekunde als OFF und dann als ON gemeldet, obwohl sich der Zustand des Fernsehers nicht verändert hat und der Powerwert deutlich unter dem festgelegten Low-Wert liegt.
Dafür meldet er kein PowerHigh=OFF, obwohl der aktuelle Wert unter dem Grenzwert liegt.
Hat jemand eine Idee woran das liegt?
Update der Firmware am Sonoff hat keine Veränderung bewirkt.
Kann das, das unmotivierte Einschalten der Beleuchtung bewirken?
Das ist übrigens mein DOIF mit der ich die Ambientebeleuchtung schalte:
DOIF (([Wohnzimmer_Fernseher_Status] eq "Aus") and ([Sonoff_Pow01:PowerHigh] eq "ON") and ([T:light] < 5)) (set Wohnzimmer_Fernseher_Status An,set Sonoff_Switch02 on) DOELSEIF (([Wohnzimmer_Fernseher_Status] eq "An") and ([Sonoff_Pow01:PowerLow] eq "ON")) (set Wohnzimmer_Fernseher_Status Aus) (set Sonoff_Switch02 off)
Wohnzimmer_Fernseher_Status ist hierin übrigens nur eine Dummy mit dem ich en Status des TV anzeige.
Kann es sein, dass der Strom des TV sehr gering ist? Ich hatte bei geringem Verbrauch nahezu unsinnige Werte von Sonoff.
Wenn der Fernseher im StandBy ist, zeigt der Pow ca. 15W an. Die PowerLow-Grenze habe ich bei 30W gesetzt. PowerHigh ist bei 70W.
Ich glaube, dass es sich hier um einen Fehler im Tasmota handelt.
Eigentlich müsste der POW doch folgendes melden, wenn der PowerWert unterhalb des LOW-Wert liegt:
PowerHigh: OFF
PowerLow: ON
Stattdessen meldet er zweimal PowerLow: Erst OFF und dann nach einer Sekunde ON.
Hi,
ich brauch mal jemanden der mich in die richtige Richtung schubst.
Ich habe einen Sonoff Pow mit FW 5.11.0 der auch brav publisht.
tele/Sonoff_Pow/SENSOR {"Time":"1970.01.01 01:42:19","ENERGY":{"Total":0.04267,"Yesterday":0.00000,"Today":0.04268,"Period":0.0,"Power":0.0,"Factor":0.00,"Voltage":0,"Current":0.000}}
auf der fhem Seite ist der Broker angelegt:
defmod myBroker MQTT 192.168.0.20:1883
attr myBroker room MQTT
attr myBroker verbose 4
setstate myBroker opened
setstate myBroker 2018-01-15 17:00:36 connection active
setstate myBroker 2018-01-15 00:04:43 state opened
und der Json Konverter:
defmod ej3 expandJSON Sonoff.*:(ENERGY.*|SENSOR.*):.{.*} (Power|Current|Voltage|Yesterday|Today|AnalogInput0|RSSI|.*Humidity|.*Temperature|Counter1|pwr|cnt)
attr ej3 room MQTT
attr ej3 verbose 4
setstate ej3 active
setstate ej3 2018-01-15 14:59:00 state active
und das zugehörige Device:
defmod Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev myBroker
attr Sonoff_Pow autoSubscribeReadings +/Sonoffpow/+
attr Sonoff_Pow event-on-change-reading . *
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet ON OFF cmnd/Sonoffpow/POWER
attr Sonoff_Pow room MQTT
attr Sonoff_Pow stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
attr Sonoff_Pow subscribeReading_LWT tele/Sonoffpow/LWT
attr Sonoff_Pow subscribeReading_POWER stat/Sonoffpow/POWER
attr Sonoff_Pow subscribeReading_RESULT stat/Sonoffpow/RESULT
attr Sonoff_Pow subscribeReading_SENSOR tele/Sonoffpow/SENSOR
attr Sonoff_Pow subscribeReading_STATE tele/Sonoffpow/STATE
attr Sonoff_Pow subscribeReading_UPTIME tele/Sonoffpow/UPTIME
attr Sonoff_Pow webCmd ON:OFF
setstate Sonoff_Pow aktuell: 0.0 W Tag: 0.00 Kw/h
setstate Sonoff_Pow 2018-01-15 15:17:01 LWT
setstate Sonoff_Pow 2018-01-15 15:16:48 POWER OFF
setstate Sonoff_Pow 2018-01-15 15:16:48 RESULT {"POWER":"OFF"}
setstate Sonoff_Pow 2018-01-15 15:15:57 SENSOR {"Time":"1970.01.01 00:03:17","ENERGY":{"Total":0.04147,"Yesterday":0.00000,"Today":0.04148,"Period":0.4,"Power":64.1,"Factor":1.00,"Voltage":220,"Current":0.284}}
setstate Sonoff_Pow 2018-01-15 15:15:57 STATE {"Time":"1970.01.01 00:03:17","Uptime":1,"Vcc":3.409,"POWER":"ON","Wifi":{"AP":1,"SSId":"UPC921BA84","RSSI":82,"APMac":"D0:17:C2:65:29:F4"}}
setstate Sonoff_Pow 2018-01-15 15:14:42 UPTIME {"Time":"1970.01.01 00:02:00","Uptime":1}
setstate Sonoff_Pow 2018-01-15 15:17:01 transmission-state subscription acknowledged
beim state vermisse ich leider eine "gescheite" Anzeige der Werte
Wo habe ich den Fehler gemacht? ;)
Hat jemand einen Hinweis für mich?
Danke für die Unterstützung
// bb
Hi,
mach mal ein list auf dein device. Ich vermute, das deine Readins POWER heissen und nicht Power. So ist das bei meinen Sonoff Devices.
gruss
lewej
hier das entsprechende List:
Internals:
CFGFN
CHANGED
IODev myBroker
NAME Sonoff_Pow
NR 839
STATE aktuell: 0.0 W Tag: 0.00 Kw/h
TYPE MQTT_DEVICE
READINGS:
2018-01-15 18:16:56 LWT online
2018-01-15 15:16:48 POWER OFF
2018-01-15 15:16:48 RESULT {"POWER":"OFF"}
2018-01-15 18:45:55 SENSOR {"Time":"1970.01.01 03:28:50","ENERGY":{"Total":0.04293,"Yesterday":0.00000,"Today":0.04294,"Period":0.0,"Power":0.0,"Factor":0.00,"Voltage":0,"Current":0.000}}
2018-01-15 18:45:54 STATE {"Time":"1970.01.01 03:28:50","Uptime":4,"Vcc":3.410,"POWER":"OFF","Wifi":{"AP":1,"SSId":"UPC921BA84","RSSI":78,"APMac":"D0:17:C2:65:29:F4"}}
2018-01-15 18:19:04 UPTIME {"Time":"1970.01.01 03:02:00","Uptime":4}
2018-01-15 18:18:26 state OFF
2018-01-15 18:45:55 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/Sonoffpow/POWER
values:
ON
OFF
sets:
OFF
ON
subscribe:
tele/sonoffpow/LWT
tele/Sonoffpow/STATE
tele/Sonoffpow/SENSOR
tele/Sonoffpow/UPTIME
stat/Sonoffpow/RESULT
stat/Sonoffpow/POWER
tele/Sonoffpow/LWT
+/Sonoff_Pow/+
tele/Sonoff_Pow/LWT
tele/Sonoff_Pow/STATE
tele/Sonoff_Pow/SENSOR
tele/Sonoff_Pow/UPTIME
subscribeExpr:
^tele\/sonoffpow\/LWT$
^tele\/Sonoffpow\/STATE$
^tele\/Sonoffpow\/SENSOR$
^tele\/Sonoffpow\/UPTIME$
^stat\/Sonoffpow\/RESULT$
^stat\/Sonoffpow\/POWER$
^tele\/Sonoffpow\/LWT$
^[^/]+\/Sonoff_Pow\/([^/]+)$
^tele\/Sonoff_Pow\/LWT$
^tele\/Sonoff_Pow\/STATE$
^tele\/Sonoff_Pow\/SENSOR$
^tele\/Sonoff_Pow\/UPTIME$
subscribeReadings:
stat/Sonoffpow/POWER:
cmd
name POWER
stat/Sonoffpow/RESULT:
cmd
name RESULT
tele/Sonoff_Pow/LWT:
cmd
name LWT
tele/Sonoff_Pow/SENSOR:
cmd
name SENSOR
tele/Sonoff_Pow/STATE:
cmd
name STATE
tele/Sonoff_Pow/UPTIME:
cmd
name UPTIME
tele/Sonoffpow/LWT:
cmd
name LWT
tele/Sonoffpow/SENSOR:
cmd
name SENSOR
tele/Sonoffpow/STATE:
cmd
name STATE
tele/Sonoffpow/UPTIME:
cmd
name UPTIME
tele/sonoffpow/LWT:
cmd
name LWT
Attributes:
IODev myBroker
autoSubscribeReadings +/Sonoff_Pow/+
event-on-change-reading . *
icon measure_power
publishSet ON OFF cmnd/Sonoffpow/POWER
room MQTT
stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
subscribeReading_LWT tele/Sonoff_Pow/LWT
subscribeReading_POWER stat/Sonoffpow/POWER
subscribeReading_RESULT stat/Sonoffpow/RESULT
subscribeReading_SENSOR tele/Sonoff_Pow/SENSOR
subscribeReading_STATE tele/Sonoff_Pow/STATE
subscribeReading_UPTIME tele/Sonoff_Pow/UPTIME
webCmd ON:OFF
Was genau vermisst du jetzt? Willst du im stateformat was anderes sehen?
mhh - ich hätte jetzt erwartet das die Werte (speziell Today, weil ungleich 0) von
SENSOR {"Time":"1970.01.01 03:28:50","ENERGY":{"Total":0.04293,"Yesterday":0.00000,"Today":0.04294,"Period":0.0,"Power":0.0,"Factor":0.00,"Voltage":0,"Current":0.000}}
an der Stelle von:
STATE aktuell: 0.0 W Tag: 0.00 Kw/h
auftauchen - oder habe ich da was falsch verstanden?
dein expand json fühlt nicht alle Readings, teste mal das:
Sonoff.*:.*:.{.*}
du greifst auf das Reading Today zu und das hat dein Device nicht, nur POWER hast und im stateformat musst du auch das POWER schreiben und nicht Power!
Nach Änderung des expand json werden die Readings jetzt anders befüllt:
Internals:
CFGFN
CHANGED
IODev myBroker
NAME Sonoff_Pow
NR 14024
STATE aktuell: 0.0 W Tag: 0.00 Kw/h
TYPE MQTT_DEVICE
READINGS:
2018-01-15 21:18:37 LWT online
2018-01-15 21:24:00 POWER ON
2018-01-15 21:24:00 RESULT {"POWER":"ON"}
2018-01-15 21:24:55 STATE {"Time":"1970.01.01 06:07:50","ENERGY":{"Total":0.08090,"Yesterday":0.00000,"Today":0.08090,"Period":1.6,"Power":63.4,"Factor":0.86,"Voltage":220,"Current":0.337}}
2018-01-15 21:19:05 UPTIME {"Time":"1970.01.01 06:02:00","Uptime":7}
2018-01-15 21:24:00 state ON
2018-01-15 21:24:55 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/Sonoff_Pow/POWER
values:
ON
OFF
sets:
OFF
ON
subscribe:
tele/Sonoff_Pow/SENSOR
cmnd/Sonoff_Pow/POWER
+/Sonoff_Pow/+
tele/Sonoff_Pow/LWT
stat/Sonoff_Pow/RESULT
stat/Sonoff_Pow/POWER
tele/Sonoff_Pow/STATE
tele/Sonoff_Pow/UPTIME
subscribeExpr:
^tele\/Sonoff_Pow\/SENSOR$
^cmnd\/Sonoff_Pow\/POWER$
^[^/]+\/Sonoff_Pow\/([^/]+)$
^tele\/Sonoff_Pow\/LWT$
^stat\/Sonoff_Pow\/RESULT$
^stat\/Sonoff_Pow\/POWER$
^tele\/Sonoff_Pow\/STATE$
^tele\/Sonoff_Pow\/UPTIME$
subscribeReadings:
cmnd/Sonoff_Pow/POWER:
cmd
name POWER
stat/Sonoff_Pow/POWER:
cmd
name POWER
stat/Sonoff_Pow/RESULT:
cmd
name RESULT
tele/Sonoff_Pow/LWT:
cmd
name LWT
tele/Sonoff_Pow/SENSOR:
cmd
name STATE
tele/Sonoff_Pow/STATE:
cmd
name STATE
tele/Sonoff_Pow/UPTIME:
cmd
name UPTIME
Attributes:
IODev myBroker
autoSubscribeReadings +/Sonoff_Pow/+
event-on-change-reading . *
icon measure_power
publishSet ON OFF cmnd/Sonoff_Pow/POWER
room MQTT
stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"POWER",undef), ReadingsVal($name,"Today",undef))}
subscribeReading_LWT tele/Sonoff_Pow/LWT
subscribeReading_POWER stat/Sonoff_Pow/POWER
subscribeReading_RESULT stat/Sonoff_Pow/RESULT
subscribeReading_STATE tele/Sonoff_Pow/STATE
subscribeReading_UPTIME tele/Sonoff_Pow/UPTIME
webCmd ON:OFF
der STATE ist aber immer noch:
STATE
aktuell: 0.0 W Tag: 0.00 Kw/h
egal ob ich stateformat "Power" oder "POWER" benutzte
Bei der Gelegenheit habe ich mich an die kalibrierung gemacht
06:26:30 CMD: cmnd/Sonoff_Pow/HLWPcal 10000
06:26:30 RSL: empfangenes topic /HLWPcal, Datengröße 5, Daten 10000
06:26:30 RSL: Gruppe 0, Index 1, Befehl HLWPCAL, Daten 10000
06:26:30 MQT: stat/Sonoff_Pow/RESULT = {"Command":"Unknown"}
wie ist denn die korrekte Syntax auf der POW Konsole? bzw ich hab 3Watt Abweichung bei 60W Glühobst. Ist das ok oder geht das besser?
Dir fehlt
attr Sonoff_Pow subscribeReading_ENERGY tele/sonoff_pow/ENERGY
EDIT:
Dein List sieht irgendwie eigenartig aus.
Hier mal der Auszug aus meiner fhem.cfg
define Sonoff_Pow1 MQTT_DEVICE
attr Sonoff_Pow1 IODev MyBroker
attr Sonoff_Pow1 alias POW_Waschmaschine
attr Sonoff_Pow1 eventMap ON:on OFF:off
attr Sonoff_Pow1 genericDeviceType switch
attr Sonoff_Pow1 icon measure_power
attr Sonoff_Pow1 publishSet on off cmnd/sonoffpow1/power
attr Sonoff_Pow1 room Wäsche,Keller
attr Sonoff_Pow1 stateFormat {sprintf("akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
attr Sonoff_Pow1 subscribeReading_ENERGY tele/sonoffpow1/ENERGY
attr Sonoff_Pow1 subscribeReading_STATE tele/sonoffpow1/STATE
attr Sonoff_Pow1 webCmd on:off
und hier das List dazu
Internals:
IODev MyBroker
NAME Sonoff_Pow1
NR 80
STATE akutelle Leistung: 2.0 W Tagesverbrauch: 0.04 Kw/h
TYPE MQTT_DEVICE
Helper:
DBLOG:
Power:
logdb:
TIME 1516050816.54114
VALUE 2
READINGS:
2018-01-15 22:13:36 Current 0.068
2018-01-15 22:13:36 ENERGY {"Time":"2018-01-15T22:13:36", "Total":15.832, "Yesterday":0.048, "Today":0.044, "Period":0, "Power":2, "Factor":0.12, "Voltage":229, "Current":0.068}
2018-01-15 22:13:36 Factor 0.12
2018-01-15 22:13:36 POWER on
2018-01-15 22:13:36 Period 0
2018-01-15 22:13:36 Power 2
2018-01-15 22:13:36 Power_avg_day 2.0
2018-01-15 22:13:36 Power_avg_month 4.3
2018-01-15 22:13:36 Power_cum_day 160032
2018-01-15 22:13:36 Power_cum_month 5952993
2018-01-15 00:00:40 Power_max_day 2.0
2018-01-07 18:32:52 Power_max_month 2145.0
2018-01-15 00:00:40 Power_min_day 2.0
2018-01-10 20:34:24 Power_min_month 0.0
2018-01-15 22:13:36 STATE {"Time":"2018-01-15T22:13:36", "Uptime":58, "Vcc":3.122, "POWER":"ON", "Wifi":{"AP":1, "SSId":"XXXXXXX", "RSSI":64, "APMac":"BC:05:43:51:EC:55"}}
2018-01-15 22:13:36 Time 2018-01-15T22:13:36
2018-01-15 22:13:36 Today 0.044
2018-01-15 22:13:36 Total 15.832
2018-01-15 22:13:36 Uptime 58
2018-01-15 22:13:36 Vcc 3.122
2018-01-15 22:13:36 Voltage 229
2018-01-15 22:13:36 Wifi_AP 1
2018-01-15 22:13:36 Wifi_APMac BC:05:43:51:EC:55
2018-01-15 22:13:36 Wifi_RSSI 64
2018-01-15 22:13:36 Wifi_SSId XXXXXXX
2018-01-15 22:13:36 Yesterday 0.048
2017-12-10 18:54:56 state ON
2018-01-15 22:13:36 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/sonoffpow1/power
values:
on
off
sets:
off
on
subscribe:
tele/sonoffpow1/ENERGY
tele/sonoffpow1/STATE
subscribeExpr:
^tele\/sonoffpow1\/ENERGY$
^tele\/sonoffpow1\/STATE$
subscribeReadings:
tele/sonoffpow1/ENERGY:
cmd
name ENERGY
tele/sonoffpow1/STATE:
cmd
name STATE
Attributes:
DbLogInclude Power
IODev MyBroker
alias POW_Waschmaschine
eventMap ON:on OFF:off
genericDeviceType switch
icon measure_power
publishSet on off cmnd/sonoffpow1/power
room Wäsche,Keller
stateFormat {sprintf("akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
subscribeReading_ENERGY tele/sonoffpow1/ENERGY
subscribeReading_STATE tele/sonoffpow1/STATE
webCmd on:off
Zitat von: pink99panther am 15 Januar 2018, 21:50:41
Dir fehlt
attr Sonoff_Pow subscribeReading_ENERGY tele/sonoff_pow/ENERGY
Sollte das nicht durch
autoSubscribeReadings +/Sonoff_Pow/+
Automatisch hinzugefügt werden?
Aber auch das manuell hinzufügen des attr hat nichts gebracht
Gesendet von meinem SM-G930F mit Tapatalk
Automatik hat anscheinen nicht richtig funktioniert.
Gibt es jetzt wenigstens das Reading ENERGY und ist gefüllt?
Schau Dir das EDIT in meinem vorherigen Beitrag mal an.
Kannst ja mal versuchen, mit für Dich geänderten subscribes, ein neues Device anzulegen.
Noch eine Info:
expandJSON sieht bei mir so aus:
define ej_Sop1energy expandJSON Sonoff_Pow1:ENERGY:.{.*}
define ej_Sop1state expandJSON Sonoff_Pow1:STATE:.{.*}
Was für eine tasmota Version setzt ihr ein? Vielleicht ist meine 5.11 aus dem development branch nicht zu fhem kompatibel
Gesendet von meinem SM-G930F mit Tapatalk
Ich hab die 5.8.0e drauf.
Kann mir nicht vorstellen, dass sich da soviel geändert hat, dass das nicht mehr funzt.
Hab mal die 5.11.1b geflasht.
Es wurde tatsächlich
tele/sonoff_pow/ENERGY -> tele/sonoff_pow/SENSOR
geändert. :-[
Ich hab jetzt
attr Sonoff_Pow subscribeReading_ENERGY tele/sonoff_pow/ENERGY
auf
attr Sonoff_Pow subscribeReading_ENERGY tele/sonoff_pow/SENSOR
geändert und den Rest gelassen.
so - ich habe es jetzt auch hinbekommen.
Zusammengefasst für die 5.11:
Internals:
DEF Sonoff.*:.*:.{.*}
NAME ej3
NOTIFYDEV Sonoff.*
NR 746
NTFY_ORDER 50-ej3
STATE 2018-01-16 11:31:22
TYPE expandJSON
s_regexp Sonoff.*:.*:.{.*}
t_regexp .*
version 1.10
READINGS:
2018-01-16 11:07:58 state active
helper:
defmod Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev myBroker
attr Sonoff_Pow alias POW_Fernseher
attr Sonoff_Pow eventMap ON:on OFF:off
attr Sonoff_Pow genericDeviceType switch
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet on off cmnd/Sonoff_Pow/power
attr Sonoff_Pow room MQTT
attr Sonoff_Pow stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef))}
attr Sonoff_Pow subscribeReading_ENERGY tele/Sonoff_Pow/SENSOR
attr Sonoff_Pow subscribeReading_POWER stat/Sonoff_Pow/POWER
attr Sonoff_Pow subscribeReading_RESULT stat/Sonoff_Pow/RESULT
attr Sonoff_Pow subscribeReading_STATE tele/Sonoff_Pow/SENSOR
attr Sonoff_Pow subscribeReading_UPTIME tele/Sonoff_Pow/UPTIME
attr Sonoff_Pow webCmd on:off
ergibt dann:
IODev myBroker
NAME Sonoff_Pow
STATE aktuell: 63.5 W Tag: 0.13 Kw/h
TYPE MQTT_DEVICE
READINGS:
2018-01-16 11:13:22 ENERGY {"Time":"1970.01.01 00:31:54","ENERGY":{"Total":0.12186,"Yesterday":0.00000,"Today":0.12187,"Period":0.9,"Power":58.6,"Factor":0.82,"Voltage":221,"Current":0.321}}
2018-01-16 11:32:52 ENERGY_Current 0.276
2018-01-16 11:32:52 ENERGY_Factor 1
2018-01-16 11:32:52 ENERGY_Period 1.6
2018-01-16 11:32:52 ENERGY_Power 63.5
2018-01-16 11:32:52 ENERGY_Today 0.1319
2018-01-16 11:32:52 ENERGY_Total 0.1319
2018-01-16 11:32:52 ENERGY_Voltage 221
2018-01-16 11:32:52 ENERGY_Yesterday 0
2018-01-16 11:32:52 POWER on
2018-01-16 11:28:30 RESULT {"POWER":"ON"}
2018-01-16 11:32:52 STATE {"Time":"1970.01.01 00:51:24","ENERGY":{"Total":0.13190,"Yesterday":0.00000,"Today":0.13190,"Period":1.6,"Power":63.5,"Factor":1.00,"Voltage":221,"Current":0.276}}
2018-01-16 11:32:52 Time 1970.01.01 00:51:24
2018-01-16 11:32:52 Uptime 1
2018-01-16 11:32:52 Vcc 3.406
2018-01-16 11:32:52 Wifi_AP 1
2018-01-16 11:32:52 Wifi_APMac D0:17:C2:65:29:F4
2018-01-16 11:32:52 Wifi_RSSI 88
2018-01-16 11:32:52 Wifi_SSId xxxxxxx
2018-01-16 11:28:30 state ON
2018-01-16 11:32:52 transmission-state incoming publish received
eine quizfrage habe ich noch:
funktinieren bei euch die PowerHigh/PowerLow Kommandos?
00:02:29 CMD: cmd/Sonoff_Pow/PowerLow
00:02:29 RSL: empfangenes topic /PowerLow, Datengröße 0, Daten
00:02:29 RSL: Gruppe 0, Index 1, Befehl POWERLOW, Daten
00:02:29 MQT: stat/Sonoff_Pow/RESULT = {"Command":"Unknown"}
00:02:40 CMD: cmd/Sonoff_Pow/PowerLow 20
00:02:40 RSL: empfangenes topic /PowerLow, Datengröße 2, Daten 20
00:02:40 RSL: Gruppe 0, Index 1, Befehl POWERLOW, Daten 20
00:02:40 MQT: stat/Sonoff_Pow/RESULT = {"Command":"Unknown"}
oder habe ich da eine falsche Syntas auf der Tasmota Konsole?
Funktioniert bei mir
14:31:13 CMD: PowerLow off
14:31:13 MQT: stat/sonoffpow1/RESULT = {"PowerLow":0}
Bei mir geht das Leider nicht, der POW läuft und ich kann ihn auch schalten. Aber Werte bekomme ich irgendwie nicht.
Kann da mal bitte jemand drüber schauen.
Zitatdefine Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev Mosquitto
attr Sonoff_Pow alias 3D_Drucker
attr Sonoff_Pow eventMap ON:on OFF:off
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet on off cmnd/3d_printer/power
attr Sonoff_Pow room 00.Büro,Sonoff
attr Sonoff_Pow stateFormat { sprintf ("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef)) }
attr Sonoff_Pow subscribeReading_ENERGY tele/3d_printer/SENSOR
attr Sonoff_Pow subscribeReading_POWER stat/3d_printer/POWER
attr Sonoff_Pow subscribeReading_RESULT stat/3d_printer/RESULT
attr Sonoff_Pow subscribeReading_STATE tele/3d_printer/SENSOR
attr Sonoff_Pow subscribeReading_UPTIME tele/3d_printer/UPTIME
attr Sonoff_Pow webCmd on:off
define ej3 expandJSON Sonoff.*:ENERGY.*:.{.*} (Power|Yesterday|Today)
attr ej3 room Sonoff
Abgesehen davon bekomme ich zusätzlich zu dem auch:
ZitatPERL WARNING: Use of uninitialized value in sprintf at (eval 171) line 1.
Ich hab das jetzt nur mal kopiert um Fehler zu vermeiden, aber irgendwie will es nicht.
Mein MQTT sieht so aus
Zitattele/3d_printer/SENSOR {"Time":"2018-03-04T17:13:43","ENERGY":{"Total":0.656,"Yesterday":0.003,"Today":0.653,"Period":7,"Power":89,"Factor":0.78,"Voltage":221,"Current":0.517}}
Für Hilfe wäre ich dankbar.
VG
Sascha
wenn ein Filter nicht so will wie du, dann fange doch systematisch an.
define ej3 expandJSON (Sonoff.*:.*:.{.*.*{.*.*}})
filtert nur nach DeviceName Sonoff
Wenn das läuft, dann setze die nächste Gruppe (beim nächsten .*) dazu, so merkst du schnell wo der Fehler steckt.
LG
Hallo ,
ich habe jetzt den kompletten Thread gelesen.
Die Frage die sich mir jetzt stellt, funktioniert das Beispiel der Readinggroup aus der Wiki mit Tasmota 12 noch ?
Ich habe es natürlich ausprobiert und bekomme für meine Pows keine Werte in der Readinggroup.
Den legacy Modus gibt es ja wohl nicht mehr ? :-\
Danke
speed
Hi zusammen,
ich bin nun schon etwas länger hier am lesen, und habe auch schon einen Fhem,MQTT,Homebridge Raspberry PI 2 am laufen, als Homebridge Hub nutze ich das iPad was ich neu von Yello bekommen habe. Nun habe ich erst einmal angefangen Schalter und Lichtschalter zu tauschen, fehlen noch ein paar vor allem der Flur dort soll ein T1+ 2x T433 zum Einsatz kommen. Und danach dann die Heizungsthermostate mit Sonoff ist es nun echt erschwinglich.
Nun zu meiner eigentlichen frage hehe .... Ich habe am PC vor der Verteilerdose einen Sonoff Pow geklemmt es läuft auch soweit alles wie es soll nur bekomme ich die Stromdaten nicht in Fhem ich denke weil ich expandJSON nicht habe es kommt immer Fehler JSON nicht gefunden. Wie kann ich das am Raspberry Pi nach installieren bevor ich hier wieder 2 Tage sitzte und suche dachte ich mir ich melde mich mal Fixxxx hier an.^^
Hoffe mir kann da jemand helfen.....
LG Mark
sudo apt-get install libjson-perl
Und diese Frage wurde schon tausend mal im Forum bzw. Fhem Wiki beantwortet.
Gesendet von iPhone mit Tapatalk
Grüße Jörg
Das kann durch aus möglich sein, aber da ich durchaus neu auf dem Gebiet bin dieses sehr Komplex ist ich seit Tagen dran sitzte alles einzurichten. Na dann sieht man schon mal den Wald vor lauter Bäumen nicht mehr. Und die lieb gefragte frage die dich nun 1 min deines Lebens gekostet hat hättest du auch ein wenig netter Formulieren können aber nichts desto trotz läuft es nicht.
define ej3 expandJSON SZ_Computer.*:ENERGY.*:.{.*} (Power|Yesterday|Today)
gibt folgendes aus:
Unknown module expandJSON
das Packet habe ich aber schon installiert !?
pi@raspberrypi:~ $ sudo apt-get install libjson-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
libjson-perl ist schon die neueste Version (2.90-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Soweit war ich nämlich vor meiner frage schon, hoffe du bist gewillt mir zu helfen.
LG Mark
mach mal ein update
@SirusX: Wir sind gewillt Dir zu helfen, aber mache es uns bitte nicht unnötig schwer: lese und verstehe bitte die angepinnten Beiträge im Anfängerbereich. Ja, ich meine lesen, nicht überfliegen. Das spart uns allen auf Dauer kostbare Zeit, auch wenn es nur Minuten sind. Danach solltest Du wissen in welcher Form welche Informationen benötigt werden. zB. Logeinträge während des "define ..." und die entsprechenden list Ausgaben.
Moin liebe Leute, ich versuche zur Zeit aus meinen Sonoff POW das Reading für die Power Messung zu unterteilen, leider vergebens.
List von meinem Sonoff POW Device: ku_Tiefkuehlschrank
Internals:
CHANGED
IODev myBroker
NAME ku_Tiefkuehlschrank
NR 684
STATE ON
TYPE MQTT_DEVICE
READINGS:
2018-03-25 15:09:35 ENERGY {"Time":"2018-03-25T14:09:34","ENERGY":{"Total":0.071,"Yesterday":0.000,"Today":0.071,"Period":6,"Power":74,"Factor":0.93,"Voltage":236,"Current":0.336}}
2018-03-25 15:07:59 state ON
2018-03-25 15:09:35 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/ku_Tiefkuehlschrank/POWER
values:
ON
OFF
sets:
OFF
ON
subscribe:
tele/ku_Tiefkuehlschrank/SENSOR
stat/ku_Tiefkuehlschrank/POWER
subscribeExpr:
^tele\/ku_Tiefkuehlschrank\/SENSOR$
^stat\/ku_Tiefkuehlschrank\/POWER$
subscribeReadings:
stat/ku_Tiefkuehlschrank/POWER:
cmd
name state
tele/ku_Tiefkuehlschrank/SENSOR:
cmd
name ENERGY
Attributes:
DbLogExclude .*
IODev myBroker
devStateIcon OFF:FS20.off:on ON:FS20.on:off
event-on-change-reading state
genericDeviceType light
homebridgeMapping On=state,values=OFF:off;ON:on,cmdOff=OFF,cmdOn=ON
icon hue_filled_outlet
publishSet ON OFF cmnd/ku_Tiefkuehlschrank/POWER
room Homekit,Kueche,Tasmota
subscribeReading_ENERGY tele/ku_Tiefkuehlschrank/SENSOR
subscribeReading_POWER stat/ku_Tiefkuehlschrank/POWER
subscribeReading_state stat/ku_Tiefkuehlschrank/POWER
webCmd ON:OFF
Im Readings ENERGY habe ich den kompletten JSON String, super.
Jedoch bekomme ich diesen nicht unterteilt.
Dazu einmal das JSON Device List:
Internals:
CFGFN
DEF ku_Tiefkuehlschrank:ENERGY:.*:.{.*} (Total|Yesterday|Today|Period|Power|Factor|Voltage|Current)
NAME ej3
NR 1184
NTFY_ORDER 50-ej3
STATE active
TYPE expandJSON
s_regexp ku_Tiefkuehlschrank:ENERGY:.*:.{.*}
t_regexp (Total|Yesterday|Today|Period|Power|Factor|Voltage|Current)
version 1.12
Helper:
DBLOG:
state:
myDbLog:
TIME 1521980893.21173
VALUE active
READINGS:
2018-03-25 15:14:35 state active
Attributes:
DbLogExclude .*
room Tasmota
Es werden im Device ku_Tiefkuehlschrank leider keine weiteren Readings angelegt, wie erhofft.
Habe ich irgendwo was überlesen oder nicht richtig verstanden?
Gruß
Mathze
Die source regex ist nich ok.
ku_Tiefkuehlschrank:ENERGY:.{.*}
Leider auch keine Veräbnderung :(
Internals:
CHANGED
IODev myBroker
NAME ku_Tiefkuehlschrank
NR 684
STATE ON
TYPE MQTT_DEVICE
READINGS:
2018-03-25 20:34:41 ENERGY {"Time":"2018-03-25T19:34:40","ENERGY":{"Total":0.266,"Yesterday":0.000,"Today":0.266,"Period":0,"Power":0,"Factor":0.00,"Voltage":231,"Current":0.000}}
2018-03-25 15:07:59 state ON
2018-03-25 20:34:41 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/ku_Tiefkuehlschrank/POWER
values:
ON
OFF
sets:
OFF
ON
subscribe:
tele/ku_Tiefkuehlschrank/SENSOR
stat/ku_Tiefkuehlschrank/POWER
subscribeExpr:
^tele\/ku_Tiefkuehlschrank\/SENSOR$
^stat\/ku_Tiefkuehlschrank\/POWER$
subscribeReadings:
stat/ku_Tiefkuehlschrank/POWER:
cmd
name LIGHT
tele/ku_Tiefkuehlschrank/SENSOR:
cmd
name ENERGY
Attributes:
DbLogExclude .*
IODev myBroker
devStateIcon OFF:FS20.off:on ON:FS20.on:off
event-on-change-reading state
genericDeviceType light
homebridgeMapping On=state,values=OFF:off;ON:on,cmdOff=OFF,cmdOn=ON
icon hue_filled_outlet
publishSet ON OFF cmnd/ku_Tiefkuehlschrank/POWER
room Homekit,Kueche,Tasmota
subscribeReading_ENERGY tele/ku_Tiefkuehlschrank/SENSOR
subscribeReading_state stat/ku_Tiefkuehlschrank/POWER
webCmd ON:OFF
Internals:
CFGFN
DEF ku_Tiefkuehlschrank:ENERGY:.{.*}
NAME ej31
NOTIFYDEV ku_Tiefkuehlschrank
NR 4281
NTFY_ORDER 50-ej31
STATE active
TYPE expandJSON
s_regexp ku_Tiefkuehlschrank:ENERGY:.{.*}
t_regexp .*
version 1.12
Helper:
DBLOG:
state:
myDbLog:
TIME 1521997443.05291
VALUE active
READINGS:
2018-03-25 20:33:26 state active
Attributes:
DbLogExclude .*
room Tasmota
Der Mitschnitt in Putty schaut auch korrekt aus.
Gruß
Mathze
Kann ich nicht nachvollziehen:
define ku_Tiefkuehlschrank dummy
define ej3 expandJSON ku_Tiefkuehlschrank:ENERGY:.{.*}
setreading ku_Tiefkuehlschrank ENERGY {"Time":"2018-03-25T19:34:40","ENERGY":{"Total":0.266,"Yesterday":0.000,"Today":0.266,"Period":0,"Power":0,"Factor":0.00,"Voltage":231,"Current":0.000}}
list ku_Tiefkuehlschrank
Internals:
CFGFN
NAME ku_Tiefkuehlschrank
NR 102
STATE ???
TYPE dummy
READINGS:
2018-03-26 09:22:04 ENERGY {"Time":"2018-03-25T19:34:40","ENERGY":{"Total":0.266,"Yesterday":0.000,"Today":0.266,"Period":0,"Power":0,"Factor":0.00,"Voltage":231,"Current":0.000}}
2018-03-26 09:22:04 ENERGY_Current 0
2018-03-26 09:22:04 ENERGY_Factor 0
2018-03-26 09:22:04 ENERGY_Period 0
2018-03-26 09:22:04 ENERGY_Power 0
2018-03-26 09:22:04 ENERGY_Today 0.266
2018-03-26 09:22:04 ENERGY_Total 0.266
2018-03-26 09:22:04 ENERGY_Voltage 231
2018-03-26 09:22:04 ENERGY_Yesterday 0
2018-03-26 09:22:04 Time 2018-03-25T19:34:40
Attributes:
Habe mir gerade das list von ku_Tiefkühlschrank noch einmal angesehen, Du hast event-on-change-reading falsch gesetzt. Nimm das raus.
Zitat von: dev0 am 26 März 2018, 09:33:12
Habe mir gerade das list von ku_Tiefkühlschrank noch einmal angesehen, Du hast event-on-change-reading falsch gesetzt. Nimm das raus.
Jetzt, wo du es sagst, logisch.
Oh man.
Recht herzlichen Dank :)
Gruß
Mathze
Hallo ,ich habe mich da jetzt lange dran probiert und kriege es nicht hin :(
Grundsätzlich funktioniert es wenn ich den filter setzte wie Reinhardt das beschrieben hat.
Nun möchte ich den Filter aber eingrenzen und die Readings werden nicht gestetzt egal was ich tue und bitte mal darüber zu schauen.
ZitatInternals:
IODev Mosquitto
NAME Sonoff_Pow
NR 158
STATE aktuell: 10.0 W Tag: 0.01 Kw/h
TYPE MQTT_DEVICE
READINGS:
2018-03-30 12:20:10 ENERGY_Current 0.119
2018-03-30 12:20:10 ENERGY_Factor 0.38
2018-03-30 12:20:10 ENERGY_Period 0
2018-03-30 12:20:10 ENERGY_Power 10
2018-03-30 12:20:10 ENERGY_Today 0.008
2018-03-30 12:20:10 ENERGY_Total 1.659
2018-03-30 12:20:10 ENERGY_Voltage 221
2018-03-30 12:20:10 ENERGY_Yesterday 0.06
2018-03-30 11:55:31 POWER ON
2018-03-30 11:55:31 RESULT {"POWER":"ON"}
2018-03-30 12:37:10 STATE {"Time":"2018-03-30T11:37:10","ENERGY":{"Total":1.661,"Yesterday":0.060,"Today":0.010,"Period":0,"Power":13,"Factor":0.49,"Voltage":224,"Current":0.124}}
2018-03-30 12:20:10 Time 2018-03-30T11:20:09
2018-03-30 11:02:02 UPTIME {"Time":"2018-03-30T10:02:00","Uptime":"23T15:53:13"}
2018-03-09 23:35:51 state OFF
2018-03-30 12:37:10 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/3d_printer/power
values:
on
off
sets:
off
on
subscribe:
tele/3d_printer/SENSOR
stat/3d_printer/POWER
stat/3d_printer/RESULT
tele/3d_printer/UPTIME
subscribeExpr:
^tele\/3d_printer\/SENSOR$
^stat\/3d_printer\/POWER$
^stat\/3d_printer\/RESULT$
^tele\/3d_printer\/UPTIME$
subscribeReadings:
stat/3d_printer/POWER:
cmd
name POWER
stat/3d_printer/RESULT:
cmd
name RESULT
tele/3d_printer/SENSOR:
cmd
name STATE
tele/3d_printer/UPTIME:
cmd
name UPTIME
Attributes:
IODev Mosquitto
alias 3d_Drucker
eventMap ON:on OFF:off
icon measure_power
publishSet on off cmnd/3d_printer/power
room 00.Büro,Sonoff
stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef))}
subscribeReading_ENERGY tele/3d_printer/SENSOR
subscribeReading_POWER stat/3d_printer/POWER
subscribeReading_RESULT stat/3d_printer/RESULT
subscribeReading_STATE tele/3d_printer/SENSOR
subscribeReading_UPTIME tele/3d_printer/UPTIME
webCmd on:off
Das einzige was geht ist folgender
Zitat#define ej1 expandJSON device:sourceReading:.{.*} targetReading
define ej3 expandJSON (Sonoff_Pow.*:.*:.{.*.*{.*.*}})
#define ej3 expandJSON (Sonoff_Pow.*:ENERGY.*:.{.*.*{.*.*}})
#define ej3 expandJSON Sonoff_Pow.*:ENERGY.*:.{.*} (Power|Yesterday|Today)
#define ej3 expandJSON Sonoff_Pow.*:.*:.{.*} (Power|Current|Voltage|Yesterday|Today|Total|Period)
#define ej3 expandJSON Sonoff.*:.*:.{.*} (Power|Yesterday|Today)
attr ej3 room Sonoff
Bitte helft mir den Filter richtig zu setzten.
VG
Sascha
Bei mir sieht es in der neuesten Tasmota-Version 5.12.0i jetzt so aus:
S|sonoff.*:.*:.{.*} (.*Power|Current|.*Voltage|.*Yesterday|.*Today|AnalogInput0|Uptime|Switch.*|.*RSSI|.*Humidity|.*Temperature)
Wichtig waren die .* vor Power etc, weil die ein level weiter runter gewandert sind, unter ENERGY{Power...}
so werden ENERGY_Power Readings generiert...
Gruß
Hat mal jemand den FHEM code für einen sonoff POW r2 ?? ON/Off klappt aber die Werte in FHEM nicht. Da ist wohl beim R2 was anders?
Erkennen tut er in Fhem wohl. Jedoch die Anzeige Aktuell / Tag klappt nicht
Hier ein List:
Internals:
IODev myBroker
NAME Sonoff_Pow_kellergarten
NR 868
STATE aktuell: 0.0 W Tag: 0.00 Kw/h
TYPE MQTT_DEVICE
.attraggr:
.attrminint:
.qos:
* 0
.retain:
* 0
READINGS:
2018-10-01 09:07:02 ENERGY {"Time":"2018-10-01T08:07:01","ENERGY":{"Total":6.107,"Yesterday":5.598,"Today":0.509,"Period":1,"Power":34,"Factor":0.80,"Voltage":229,"Current":0.184}}
2018-10-01 09:07:02 ENERGY_Current 0.184
2018-10-01 09:07:02 ENERGY_Factor 0.8
2018-10-01 09:07:02 ENERGY_Period 1
2018-10-01 09:07:02 ENERGY_Power 34
2018-10-01 09:07:02 ENERGY_Today 0.509
2018-10-01 09:07:02 ENERGY_Total 6.107
2018-10-01 09:07:02 ENERGY_Voltage 229
2018-10-01 09:07:02 ENERGY_Yesterday 5.598
2018-10-01 08:48:37 POWER ON
2018-10-01 09:07:02 Time 2018-10-01T08:07:01
2018-10-01 08:48:36 state
2018-10-01 09:07:02 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/sonoffpowkeller/POWER
values:
ON
OFF
sets:
OFF
ON
subscribe:
tele/sonoffpowkeller/SENSOR
stat/sonoffpowkeller/POWER
cmnd/sonoffpowkeller/POWER
tele/sonoffpowkeller/ENERGY
subscribeExpr:
^tele\/sonoffpowkeller\/SENSOR$
^stat\/sonoffpowkeller\/POWER$
^cmnd\/sonoffpowkeller\/POWER$
^tele\/sonoffpowkeller\/ENERGY$
subscribeQos:
cmnd/sonoffpowkeller/POWER 0
stat/sonoffpowkeller/POWER 0
tele/sonoffpowkeller/ENERGY 0
tele/sonoffpowkeller/SENSOR 0
subscribeReadings:
cmnd/sonoffpowkeller/POWER:
cmd
name state
stat/sonoffpowkeller/POWER:
cmd
name POWER
tele/sonoffpowkeller/ENERGY:
cmd
name ENERGY
tele/sonoffpowkeller/SENSOR:
cmd
name ENERGY
Attributes:
IODev myBroker
icon measure_power
publishSet ON OFF cmnd/sonoffpowkeller/POWER
room STROM
stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
subscribeReading_ENERGY tele/sonoffpowkeller/ENERGY
subscribeReading_POWER stat/sonoffpowkeller/POWER
subscribeReading_state cmnd/sonoffpowkeller/POWER
webCmd ON:OFF
Zitat
Jedoch die Anzeige Aktuell / Tag klappt nicht
stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
Die Readings 'Power' und 'Today' gibt es ja auch nicht.
jep nun auch gemerkt falls es jemand braucht mein Code ... hab noch mehr hinzugefügt:
define Sonoff_Pow_kellergarten MQTT_DEVICE
attr Sonoff_Pow_kellergarten userattr subscribeReading_state subscribeReading_status
attr Sonoff_Pow_kellergarten IODev myBroker
attr Sonoff_Pow_kellergarten devStateIcon ON:on:OFF Off:off:ON
attr Sonoff_Pow_kellergarten event-on-change-reading .*
attr Sonoff_Pow_kellergarten eventMap ON:on OFF:off
attr Sonoff_Pow_kellergarten publishSet ON OFF toggle cmnd/sonoffpowkeller/POWER
attr Sonoff_Pow_kellergarten qos 1
attr Sonoff_Pow_kellergarten retain 1
attr Sonoff_Pow_kellergarten room STROM
attr Sonoff_Pow_kellergarten stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h Gestern: %.3f Kw/h Gesamt: %.4f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
attr Sonoff_Pow_kellergarten subscribeReading_sensor tele/sonoffpowkeller/SENSOR
attr Sonoff_Pow_kellergarten subscribeReading_state stat/sonoffpowkeller/POWER
attr Sonoff_Pow_kellergarten webCmd on:off:toggle
Hallo, danke für diesen Thread.
Will die Sonoff Pow verwenden um den Stromverbrauch der Waschmaschine zu messen und wenn diese fertig ist (Stromverbrauch niedrig) eine Nachricht an die Smartphones senden bzw. Die Stromzufuhr kappen.
Bevor ich mir die Teile besorge noch eine Frage : geht auch die R2 Version bzw. Was genau ist der Unterschied?
In AliExpress findet man beide aber mehr die R2.
Danke pOpY
Gesendet von meinem LG-H815 mit Tapatalk
Hallo, ich habe auch versucht den Sonoff Pow bei mir einzurichten.
define Sonoff_Pow_kellergarten MQTT_DEVICE
attr Sonoff_Pow_kellergarten userattr subscribeReading_state subscribeReading_status
attr Sonoff_Pow_kellergarten IODev myBroker
attr Sonoff_Pow_kellergarten devStateIcon ON:on:OFF Off:off:ON
attr Sonoff_Pow_kellergarten event-on-change-reading .*
attr Sonoff_Pow_kellergarten eventMap ON:on OFF:off
attr Sonoff_Pow_kellergarten publishSet ON OFF toggle cmnd/main/POWER
attr Sonoff_Pow_kellergarten qos 1
attr Sonoff_Pow_kellergarten retain 1
attr Sonoff_Pow_kellergarten room MQTT
attr Sonoff_Pow_kellergarten stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h Gestern: %.3f Kw/h Gesamt: %.4f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
attr Sonoff_Pow_kellergarten subscribeReading_sensor tele/main/SENSOR
attr Sonoff_Pow_kellergarten subscribeReading_state stat/main/POWER
attr Sonoff_Pow_kellergarten webCmd on:off:toggle
Ich habe mir mal den Code von weiter oben kopiert.
Ich bekomme im Log folgenden Fehler.
2019.02.09 17:08:10 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 65) line 1.
2019.02.09 17:08:10 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 66) line 1.
2019.02.09 17:08:10 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 67) line 1.
2019.02.09 17:08:11 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 68) line 1.
2019.02.09 17:08:11 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 69) line 1.
Kann mir einer weiter helfen?
Wie hast du das eingebaut?
Zitat von: germanikus666 am 09 Februar 2019, 17:08:51
Kann mir einer weiter helfen?
Da sind doch gar keine Readings mit ENERGY vorhanden, das sollte den Fehler auslösen.
Lies mal den Wiki Artikel zu MQTT, das ist etwas komplex zu installieren.
Gesendet von iPad mit Tapatalk Pro
Mein Fehler habe es nochmal den Thread komplett gelesen und eine funktionierende Lösung gefunden.
8) ;D
define Sonoff_Pow1 MQTT_DEVICE
attr Sonoff_Pow1 IODev myBroker
attr Sonoff_Pow1 eventMap ON:on
attr Sonoff_Pow1 icon measure_power
attr Sonoff_Pow1 publishSet on cmnd/main/POWER
attr Sonoff_Pow1 room MQTT
attr Sonoff_Pow1 stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef))}
attr Sonoff_Pow1 subscribeReading_SENSOR tele/main/SENSOR
attr Sonoff_Pow1 subscribeReading_STATE tele/main/STATE
attr Sonoff_Pow1 webCmd on
define ej_Sop1energy expandJSON Sonoff_Pow1:.*:.{.*}
In der Zwischenzeit ist es ja so, das MQTT komplett überholt wurde und jetzt unter dem Namen MQTT2 läuft.
Lies dazu die Referenz von MQTT2_Client (https://fhem.de/commandref.html#MQTT2_DEVICE), Server und Bridge.
Wenn ihr MQTT2_Server einsetzt, dann braucht man auch den Mosquitto nicht mehr.
Die Konfiguration von MQTT_Device geht eigentlich vollautomatisch, wenn ihr das Attribut Autocreate = 1 setzt und dann anschließend mit den vielen Sonoff Templates konfiguriert. Dazu habe ich hier Anhand des Beispiels eBusd ein paar Hinweise zur Konfiguration geschrieben.
Für Sonoff (https://forum.fhem.de/index.php/topic,94434.0.html) gibt es auch zahlreiche Hinweise.
Ich habe alles auf MQTT2_Client umgestellt, Server benutze ich noch Mosquitto zwecks besserem Logging.
Hier im Anhang wie einfach so ein Template funktioniert, auswählen und der Device wird automatisch konfiguriert.
expandJson wird dabei überflüssig.
LG
Hallo, ich mische mich an der Stelle mal ein, ich arbeite auch noch mit dem alten MQTT. Was muss ich beachten wenn ich auf MQTT 2 umsteige? Ich habe Sorge das sich die alte und die neue Welt stören.
Gesendet von iPhone mit Tapatalk
nein, MQTT und MQTT2 stören sich nicht, du kannst sogar den Mosquitto laufen lassen.
So kannst du in Ruhe alles testen und wenn alles funktioniert die alten Devices löschen, sonst hast alles doppelt.
Ich würde halt während der Tests den MQTT deaktivieren, sonst bekommst du ohnehin eine Fehlermeldung das das Port bereits belegt ist.
LG
Danke, dann weiß ich was ich am Wochenende machen werde
Gesendet von iPhone mit Tapatalk