98_cloneDummy.pm [war: Erweiterungsvorschlag für 98_dummy.pm]

Begonnen von Joachim, 21 März 2014, 08:07:34

Vorheriges Thema - Nächstes Thema

Joachim

Moin chris1284,
der Thread ist bei mir schon offen, und ich mache mir Gedanken.

Das Problem hängt mit der Sonderbehandlung von "state" und "STATE" zusammen.
Workaround fürs erste, mit stateFormat arbeiten, oder den optionalen Parameter "reading" füllen.
DEVTYPE und DEVFAMILY sind auch im Arbeit, hängt mit Antwort 117 zusammen.

Wenn ich eine Lösung habe, melde ich mich in dem Thread.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Joachim

Moin andre,

genau da bin ich schon bei.
Da ich leider keine Ahnung vom Programmieren habe, dauert das alles bei mir etwas länger, habe mir aber schon die entsprechenden Zeilen aus notify geklaut, und versuche es jetzt nebenwirkungsfrei einzubinden.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

justme1968

dann ist alles gut. das bekommst du hin.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Joachim

Da bin ich ganz zuversichtlich.
Darf ich Dich danach als "Versuchskaninchen" mißbrauchen? ;D
Dann würde ich die geänderte Version zum testen und zur "Codeüberprüfung"  hier anhängen.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Joachim

#126
@ all,
im Anhang mal eine neue Testversion vom cloneDummy.
Wenn ich keine Fehler eingebaut habe, sollte sie jetzt folgendes zusätzlich können:
- alle Readings des Devices übernehmen, und nicht nur das erste Gefundene.
- den Originalstate des Devices übernehmen, wenn addStateEvent gesetzt ist. Das geht z.Z. allerdings nur, wenn das zu clonende Device und cloneDummy auf dem gleichen FHEM laufen (FHEM2FHEM geht nicht, da ich noch nicht weiss, wie ich das original state dort bekomme).

Bitte testen, über den Code sehen und Rückmeldung geben.

Danke, gruß Joachim

Anhang entfernt, da fehlerhaft
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

justme1968

das mit den mehrfach redings schaut gut aus. da hat jetzt bei mir alles funktioniert wie es soll.

mit state habe ich aber noch probleme gehabt:

- laut code sollte state in _state des cloneDummy landen. das war bei mir nicht der fall
- STATE stand plötzlich auf _state

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Joachim

Hallo andre,

da hat sich noch ein Fehler eingeschlichen, den ich suchen muss.
Danke ersteinmal für die Rückmeldung.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Joachim

So, Fehler eingekreist,
die Lösung gibt es aber nicht mehr heute (Fernsehzeit).

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Joachim

#130
Moin @ all,
Ich hoffe, die Fehler sind nun beseitigt, deshalb in der Anlage eine neue Testversion.
Wie oben schon angekündigt, sollte jetzt folgendes zusätzlich funktionieren:
- es sollen alle Readings des geklonten Devices übernommen werden
- es ist zusätzlich möglich, den Original "state" des geklonten Devices zu übernehmen (geht bei FHEM2FHEM noch nicht)

Die Rangfolge für "STATE" ist:
- wenn keine Vorgabe gemacht wurde, dann die Meldung von cloneDummy (initialized, active)
- wenn addStateEvent gesetzt ist, dann der "state" vom geklonten Device (dann kein "state" mehr vom cloneDummy)
- wenn das optionale reading im define gesetzt ist, dann der Wert davon (überstimmt die beiden vorherigen Zeilen)
- wenn stateFormat als attr gesetzt ist, toppt das alles

Gruß Joachim


Anhang entfernt, da die Änderungen im regulären Update sind
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

chris1284

hi,

habe es seit gestern abend mal geteste und wie ich finde hat sich zu vorher nichts geändert :-)
aus dem original state des devices wird immer noch ein neues "unbrauchbares" reading T (siehe screenshot) welches das original garnicht hat

Zitat- wenn addStateEvent gesetzt ist, dann der "state" vom geklonten Device (dann kein "state" mehr vom cloneDummy)
kannst du dies bitte das hier näher erklären? was heißt 1 und was heißt 0. ich habe mal eine weile 1 und mal eine weile 0 gesetzt und es macht keinen unterschied ob 1, 0 oder attr addStateEvent gar nicht gesetzt.

der clone ist noch keine richtiges spiegelbild des originals:
vom ks300 wird avg_day schön im clone geschrieben, avg_month, cum_day, cum_month leider nicht (hier mal betateilchen fragen!?). Das readings die seit einsatz cloneDummy nicht im original geändert wurden auch nicht im clone geändert werden ist klar.

gruß
christian

rudolfkoenig

Zitatder clone ist noch keine richtiges spiegelbild des originals: vom ks300 wird avg_day schön im clone geschrieben, avg_month, cum_day, cum_month leider nicht

Liegt daran, dass diese Werte zwar aktualisiert, aber nicht per Event verteilt werden. avg_month wird zwar einmal im Monat verteilt, das hast Du aber vermutlich nicht abgewartet. cum* sind Hilfsvariablen, und sollten nicht beachtet werden.

chris1284

#133
Zitat von: rudolfkoenig am 15 Mai 2014, 09:21:44
t, aber nicht per Event verteilt werden. avg_month wird zwar einmal im Monat verteilt, das hast Du aber vermutlich nicht abgewartet.

siehe scrennshot, avg_month wurde im original heute morgen aktualisiert.... zumindest laut timestamp 15.05.2014 (heute) 05:13:20

Zitat von: rudolfkoenig am 15 Mai 2014, 09:21:44cum* sind Hilfsvariablen, und sollten nicht beachtet werden

warum? für was werden sie benötigt und warum sollte man sie nicht beachten? wenn zb. hilfsmodule wie rain diese verwenden (weis ich nicht) wäre es toll diese im clone auf einem anderen system zu haben um dort evtl diese hilfsmodule zu nutzen.

ich hole mit zur zeit noch alle werte per notify und eigenem  "remote-module" ins 2. fhem system. und habe 1:1 das device als dummy (übrigens auch state 1:1 ) toll wäre es nun halt auf die notifys zu verzichten und alles über clone zu machen.

wie ich das sehe sollt genau das clone machen -> ein device dublizieren, nicht nur teile. und die krönung wäre natürlich wenn man einen klon im 2. system genau so verwursten könnte wie das original. sollte das nicht das ziel von clone sein muss ich das nur wissen, dann würde ich mich ausklinken.

rudolfkoenig

Zitatsiehe scrennshot, avg_month wurde im original heute morgen aktualisiert

Du solltest mir mehr Glauben schenken, ich hab das Zeug programmiert.
Aktualisiert ja, verteilt nein, schliesslich will ich nicht taeglich ein avg_month in meinem Logfile haben.

Zitatfür was werden sie benötigt und warum sollte man sie nicht beachten?
Weil das private Hilfsvariablen fuer die Durschnitssberechnung (avg_*) sind.

Zitatwenn zb. hilfsmodule wie rain diese verwenden
Dann haben sie Pech, wie gesagt, es sind _private_ Variablen.