[gelöst] Reading wenn Config nicht gespeichert ist?

Begonnen von roman1528, 02 Februar 2016, 14:18:29

Vorheriges Thema - Nächstes Thema

roman1528

Moin

Gibt es ein Reading welches z.B. auf 1 gesetzt ist wenn die aktuelle Config nicht gespeichert ist?Wenn ja, wo kann ich es finden bzw. woher weiß FHEMWeb dass die Config nicht gespeichert ist?

Wenn nicht, kann man sich solch ein Reading anlegen?

Ich möchte mir in FTUI nämlich eine Benachrichtgung einbauen wenn die Config nicht gespeichert ist.

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

Hans Franz

Könnte so gehen:
define savestate dummy
attr savestate userReadings savestate {@structChangeHist}

define global_notify notify global:.* set savestate 1


Lasse mich aber gerne eines Besseren belehren.

Gruß
Hans

Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

roman1528

Zitat von: Hans Franz am 02 Februar 2016, 17:03:25
Könnte so gehen:
define savestate dummy
attr savestate userReadings savestate {@structChangeHist}

define global_notify notify global:.* set savestate 1


Das machts leider nicht.
Davon mal abgesehen, dass ich nicht weiß was {@structChangeHist} ist...

Hatte das notify auf global:SAVE.* gestzt. das läuft 1A wenn ich speichere. Aber nichts setzt den dummy wenn die Config verändert ist.

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

Hans Franz

#3
{@structChangeHist} in der Kommandozeile ergibt bei mir (bei rotem Fragezeichen) die Anzahl der modifizierten Änderungen. Ergibt Null (oder Nichts) nach dem Sichern. Ist aus FHEMWEB geklaut.

Gruß
Hans

Edit:
Zitatmodifizierten Änderungen
So'n Quatsch ;)
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

marvin78

Dass es auf global:SAVE nichts macht ist klar (wobei das nichtmal stimmt). Es soll ja auch dann was tun, wenn du andere Dinge machst, als speichern. Du musst das notify entweder, wie von Hans Franz beschrieben, auf

global:.*

setzen oder auf sowas

global:(ATTR|DEFINED|DELETED|DELETEATTR|MODIFIED|RENAMED|SAVE).*

betateilchen

define unsaved at +*00:00:10 { if(@structChangeHist) {CommandSetReading(undef,'unsaved unsaved 1')} else {CommandSetReading(undef,'unsaved unsaved 0')} }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roman1528

Zitat von: marvin78 am 02 Februar 2016, 19:35:40
Dass es auf global:SAVE nichts macht ist klar

Das habe ich nicht behauptet! Wenn ich auf Save-Config klicke wird dieses event ausgelöst und würde mir den Dummy zurück setzen.

Dann klappt also das hier nicht:
define savestate dummy
attr savestate userReadings savestate {@structChangeHist}


wobei ich mit userReadings schon öfter Probleme hatte dass sie nicht gesetzt werden. Z.B. bei WebViewControl und GPIO. Auch hier nicht.
Aber bei z.B. GDS funktionieren die userReadings.... <<< Anderes Thema...

Ich werde das mit {@structChangeHist} weiter testen...

Und natürlich den Vorschlag von betateilchen. Wobei da nur "Chinesisch" für mich steht  ;D

Danke schon mal für die Antworten. Ich werde testen, testen, testen

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

marvin78

Das userReading kann nur wirken, wenn ein Event ausgelöst wird. Das passiert über das notify (für Änderungen eben NICHT auf SAVE sondern auf eben diese Änderung).

roman1528

Ja gut...

Man sollte einfach nicht darüber nachdenken wie das funktionieren soll... Aber so läuft es natürlich.

define savestate dummy
attr savestate userReadings savestate {@structChangeHist}

define notify_savestate notify global:.* set savestate 1


Danke an alle^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

marvin78

Man sollte einfach nicht darüber nachdenken wie das funktionieren soll

Doch. Genau das sollte man. Dann kommt man nämlich nicht auf die Idee, es anders zu machen, als vorgeschlagen, weil man weiß, warum es so vorgeschlagen wurde.

betateilchen

und meine Lösung braucht nur ein einziges device und nicht zwei - und keine userReadings :P
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roman1528

Zitat von: betateilchen am 02 Februar 2016, 20:37:57
und meine Lösung braucht nur ein einziges device und nicht zwei - und keine userReadings :P

Die Readings sind aber von Vorteil. Habe den Dummy gleich noch 2 spendiert  um Text und HEX-Farbe an FTUI zu übergeben :)
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

Hans Franz

betateilchens Lösung ist eindeutig eleganter. Das Reading steckt nun im at und du kannst auch dem at noch weitere Readings hinzufügen.
Du kannst das aber auch alles in das notify stecken:
define global_notify notify global:.* {(@structChangeHist) ? CommandSetReading(undef,'global_notify unsaved 1') : CommandSetReading(undef,'global_notify unsaved 0')}


Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

betateilchen

Zitat von: roman1528 am 03 Februar 2016, 00:01:57
Die Readings sind aber von Vorteil. Habe den Dummy gleich noch 2 spendiert

Irgendwann, wenn Du fhem "verstanden" hast, solltest Du über diese Aussage nochmal nachdenken ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roman1528

Zitat von: betateilchen am 03 Februar 2016, 07:09:10
Irgendwann, wenn Du fhem "verstanden" hast, solltest Du über diese Aussage nochmal nachdenken ;)

Ich denke es ist ein riesiges Perl Unverständniss. Deswegen steht da für mich nur Bahnhof.

Aber klar. natürlich kann man dem notify auch Readings verpassen... Wie doof XD

Eins müsstet ihr mir aber noch verraten. Da ich ja mehrere Readings habe... Wie ist das Trennzeichen zwischen den Befehlen?


{(@structChangeHist) ? CommandSetReading(undef,'notify_savestate savestate 1'), CommandSetReading(undef,'notify_savestate color #B22222')........


{(@structChangeHist) ? CommandSetReading(undef,'notify_savestate savestate 1'); CommandSetReading(undef,'notify_savestate color #B22222')........


{(@structChangeHist) ? CommandSetReading(undef,'notify_savestate savestate 1') CommandSetReading(undef,'notify_savestate color #B22222')........


Das funktioniert schonmal alles nicht  :D

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik