global hat ein state Reading und zeigt dieses an

Begonnen von Amenophis86, 03 August 2017, 00:30:31

Vorheriges Thema - Nächstes Thema

Amenophis86

Ich frage mich, was ich verändert habe, dass mit "global" Device plötzlich ein state Reading hat und mir dies auch anzeigt. Eigentlich bin ich es gewohnt, dass globale immer "no definition" anzeigt und nicht zB "SAVE", wenn ich die Config gespeichert habe.

Habe ich diese Änderung selbst verursacht und wenn ja, wie? Auf meiner Testumgebung ist und bleibt globale immer auf "no definition" stehen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Benni

#1
Und wenn du das Reading einfach mit deletereading wieder löschst?

Ansonsten hat global ein Internal STATE, das steht auf "no definition" und das wird angezeigt.

Amenophis86

Zitat von: Benni am 03 August 2017, 05:15:21
Und wenn du das Reading einfach mit deletereading wieder löschst?
ich hatte es schon mal gelöscht, aber mit der nächsten Aktion erscheint es wieder neu.

Zitat von: Benni am 03 August 2017, 05:15:21
Ansonsten hat global ein Internal STATE, das steht auf "no definition" und das wird angezeigt.
Und nein, das internal STATE nimmt den gleichen Status, wie das Reading state an. Oder umgekehrt, kann ich nicht sagen. Daher wundere ich mich ja.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Benni

Zitat von: Amenophis86 am 03 August 2017, 15:37:53
Und nein, das internal STATE nimmt den gleichen Status, wie das Reading state an. Oder umgekehrt, kann ich nicht sagen. Daher wundere ich mich ja.

Ja, das ist Standartverhalten. Wenn ein state-Reading vorhanden ist (nicht nur bei global) dann wird das für STATE verwendet, es sei denn, man definiert mit stateFormat was anderes (oder das Modul handelt es komplett selbst). Da es bei global aber kein stateFormat gibt, weil es ja eigentlich kein state gibt, kommt hier anscheinend trotzdem das Standardverhalten zum Tragen.

Ein state bei global bekomme ich bspw. mit setstate hin. Musst halt mal schauen, ob du irgendein notify, DOIF oder eine Prozedur in deiner 99_myUtils (oder anderen Moduldatei) hast, die ggf. setreading auf global anwendet. Eventuell auch nur versehentlich über ein zu weit greifendes devspec.

Allerdings sollte der state/STATE des global eigentlich keine Probleme bereiten, egal wie er gesetzt ist.

Amenophis86

Problem habe ich auch noch nicht erkannt damit es wundert mich nur. Und ich wüsste nicht welches DOIF etc. mir den Status "SAVE" etc auf mein global Device schreiben sollte. Daher die Frage, ob jemand schon mal das Problem hatte :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Amenophis86

Habe mal stacktrace auf 1, verbose auf 5 gesetzt und dann ein SAVE ausgeführt. Das Reading state wurde von globale wieder neu gesetzt und im Log kann ich mit der Suche nach "SAVE" oder "global" nur folgendes finden:


2017.08.03 18:56:43 5: Starting notify loop for global, 1 event(s), first is ATTR global verbose 5
2017.08.03 18:56:43 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:56:43 4: DbLog Logdb_Heizung -> ###              start of new Logcycle                       ###
2017.08.03 18:56:43 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:56:43 4: DbLog Logdb_Heizung -> amount of events received: 1 for device: global
2017.08.03 18:56:43 4: DbLog Logdb_Heizung -> check Device: global , Event: ATTR global verbose 5
2017.08.03 18:56:43 5: End notify loop for global
2017.08.03 18:56:43 4: WEB: /fhem?cmd.attrglobal%3Dattr%20global%20verbose%205&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
....

2017.08.03 18:56:47 4: WEB_192.168.2.10_57790 GET /fhem?cmd=%7BAttrVal(%22global%22%2C%22stacktrace%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_408523863031075; BUFLEN:0
2017.08.03 18:56:47 5: Cmd: >{AttrVal("global","stacktrace","")}<
2017.08.03 18:56:47 4: WEB: /fhem?cmd=%7BAttrVal(%22global%22%2C%22stacktrace%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_408523863031075 / RL:22 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2017.08.03 18:56:49 4: WEB_192.168.2.10_57790 POST /fhem?cmd.attrglobal%3Dattr%20global%20stacktrace%201&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650; BUFLEN:0
2017.08.03 18:56:49 5: Cmd: >attr global stacktrace 1<
2017.08.03 18:56:49 5: Starting notify loop for global, 1 event(s), first is ATTR global stacktrace 1
2017.08.03 18:56:49 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:56:49 4: DbLog Logdb_Heizung -> ###              start of new Logcycle                       ###
2017.08.03 18:56:49 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:56:49 4: DbLog Logdb_Heizung -> amount of events received: 1 for device: global
2017.08.03 18:56:49 4: DbLog Logdb_Heizung -> check Device: global , Event: ATTR global stacktrace 1
2017.08.03 18:56:49 5: End notify loop for global
2017.08.03 18:56:49 4: WEB: /fhem?cmd.attrglobal%3Dattr%20global%20stacktrace%201&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
....
2017.08.03 18:56:52 4: WEB_192.168.2.10_57790 POST /fhem?cmd=save&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650; BUFLEN:0
2017.08.03 18:56:52 5: Cmd: >save<
2017.08.03 18:56:52 5: Starting notify loop for global, 1 event(s), first is SAVE
2017.08.03 18:56:52 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:56:52 4: DbLog Logdb_Heizung -> ###              start of new Logcycle                       ###
2017.08.03 18:56:52 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:56:52 4: DbLog Logdb_Heizung -> amount of events received: 1 for device: global
2017.08.03 18:56:52 4: DbLog Logdb_Heizung -> check Device: global , Event: SAVE
2017.08.03 18:56:52 5: End notify loop for global
2017.08.03 18:56:55 4: WEB: /fhem?cmd=save&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650 / RL:36 / text/plain; charset=UTF-8 / Content-Encoding: gzip
....
2017.08.03 18:57:00 4: WEB_192.168.2.10_57788 POST /fhem?cmd.attrglobal%3Dattr%20global%20stacktrace%200&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650; BUFLEN:0
2017.08.03 18:57:00 5: Cmd: >attr global stacktrace 0<
2017.08.03 18:57:00 5: Starting notify loop for global, 1 event(s), first is ATTR global stacktrace 0
2017.08.03 18:57:00 5: createNotifyHash
2017.08.03 18:57:00 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:57:00 4: DbLog Logdb_Heizung -> ###              start of new Logcycle                       ###
2017.08.03 18:57:00 4: DbLog Logdb_Heizung -> ################################################################
2017.08.03 18:57:00 4: DbLog Logdb_Heizung -> amount of events received: 1 for device: global
2017.08.03 18:57:00 4: DbLog Logdb_Heizung -> check Device: global , Event: ATTR global stacktrace 0
2017.08.03 18:57:00 5: End notify loop for global
2017.08.03 18:57:00 4: WEB: /fhem?cmd.attrglobal%3Dattr%20global%20stacktrace%200&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
......
2017.08.03 18:57:03 4: WEB_192.168.2.10_57788 GET /fhem?cmd=%7BAttrVal(%22global%22%2C%22verbose%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_408523863031075; BUFLEN:0
2017.08.03 18:57:03 5: Cmd: >{AttrVal("global","verbose","")}<
2017.08.03 18:57:03 4: WEB: /fhem?cmd=%7BAttrVal(%22global%22%2C%22verbose%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_408523863031075 / RL:22 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
.....
2017.08.03 18:57:06 4: WEB_192.168.2.10_57788 POST /fhem?cmd.attrglobal%3Dattr%20global%20verbose%203&XHR=1&fwcsrf=csrf_408523863031075&fw_id=49650; BUFLEN:0
2017.08.03 18:57:06 5: Cmd: >attr global verbose 3<


Keines davon erklärt mir, wer das Reading setzt. Komisch komisch.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

RaspiLED

Nee, Du solltest das state löschen und mit dem Trace schauen welches doif/... das reading state wieder erstellt ;-)
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Amenophis86

Ich bin mir sicher, dass egal ist, ob ich das state lösche, oder nicht. Sollte es ein Doif, notify, at oder sonst was sein, dann müsste man es immer sehen, wenn es gesetzt wird. Und das wird es bei jedem Save neu.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

RaspiLED

Hi,
also ich sehe das so: Der FHEM Befehl save setzt falls vorhanden global state auf SAVE, was im Standard im STATE übernommen wird. Sollte es aber kein state geben, macht der FHEM Befehl save auch nix.
Daher ist die root cause, das Anlegen des state. Ergo liegt die Lösung in der Frage was legt state zuerst an, oder nicht?
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Amenophis86

Naja, ich lösche ja das Reading state und trotzdem werden sämtliche Befehle des globale wieder als state angelegt. Allerdings finde ich niemanden meiner Device, welche mit dem global Modul arbeiten, daher bin ich echt überfragt, wer es macht. Wüsste auch nicht, wie ich es ohne stacktrace finden soll und das gibt mir aktuell ja keine gescheite Ausgabe.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

rudolfkoenig

ZitatWüsste auch nicht, wie ich es ohne stacktrace finden soll
attr global verbose 5
Stacktrace hilft da eher wenig.

Amenophis86

Habe ich auch bereits gemacht siehe mein Beitrag von gestern 19:02 Uhr. Das war alles was ich im Log dazu gefunden habe.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

rudolfkoenig

Damit man was sieht, muesste die Variable vor der Aenderung von global state auf 5 gesetzt werden, und erst nachdem es geaendert ist, wieder auf 3. Und dann muss man das Log zwischen den beiden Ereignisen durchlesen.