Ok, sorry, ihr habt Recht, die Fehlersituation ergab sich aufgrund der nach dem Define nicht vorhandenen Attribute und somit wurden die in fhem.cfg gespeicherten Werte nach dem Start nicht übernommen.
Alle möglichen Attribute per Default setzen geht leider nicht, da auch diese Menge erst nach dem Start des Python Servers vorhanden ist.
Eine weitere Alternative ist fuer die Zeit der Initialisierung mit setDevAttrList(".*) alles zu erlauben, und hoffen, dass die fhem.cfg Editierer sich nicht vertippen, und der CoProzess immer und schnell die richtige Liste meldet.
Ah, ich wusste nicht, dass man bei setDevAttrList auch Wildcards verwenden kann. Das wäre natürlich die Lösung! Danke!
Auf der anderen Seite finde ich es unverantwortlich, einen Prozess zu starten, der FHEM blockiert, nur damit man keine Daten in FHEM speichern muss. In diesem Fall hat man auch keinen Support vom FHEM Framework, da dieser vom globalen select abhaengt, d.h. man darf die Finger schmutzig machen mit allen Details der Kommunikation.
Was meinst du mit blockieren? Der CoProcess blockiert FHEM nicht, genau so wenig blockiert der Python Code FHEM. Ich musste nur einen Teil "blockierend" machen, nämlich die Funktionsaufrufe der Python DefineFn, AttrFn, usw. da die FHEM Funktionen im Standard auch direkt in der Perl FHEM Mainloop abgewickelt werden und somit "blockieren". Die Daten speicher ich bereits alle in FHEM, in Python werden diese nur zur Laufzeit verarbeitet.
//Edit: quote Tags korrigiert