FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Hausrobot am 29 April 2023, 10:29:19

Titel: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: Hausrobot am 29 April 2023, 10:29:19
Hallo,

ich setze bedingungsabhängig Werte in einer Wärmepumpe (älteres Modell, muss man "nachhelfen" ;) )
Defintion: defmod WPumpe WKRCD4 /dev/ttyUSB0@9600 60

Gesetzt wird so:
defmod di_wp_heizung DOIF ([SEdge:I_AC_Power:avg20] > 4300 ) ((set WPumpe Hzg-TempBasisSoll 24.4)) DOELSE ((set WPumpe Hzg-TempBasisSoll 20.4))
attr di_wp_heizung DOIF_Readings AC_Power_mittel:[SEdge:I_AC_Power:avg200]
attr di_wp_heizung disable 0
attr di_wp_heizung repeatcmd 900:1200
attr di_wp_heizung room 3 Heizung
attr di_wp_heizung verbose 5

Das Setzen der Werte per Hand liefert einen Dialog. Offenbar wird dieser in ein error-Reading bei DOIF abgelegt
error | set WPumpe Hzg-TempBasisSoll 20.4: Wrote 04 bytes starting from f8 with 3333a341 (20.3999996185303)

Ich ertrage das, comment wäre mir lieber. Hat es aber ggf. weitere Auswirkungen wenn ein error-Reading im DOIF gesetzt wird?

Viele Grüße
Hausrobot
Titel: Aw: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: Otto123 am 29 April 2023, 10:40:33
Hi,

die doppelten Klammern sind unnütz.

Mir scheint das Problem liegt im Device WPumpe. Was passiert denn bei dem Befehl in der FHEM Kommandozeile?
set WPumpe Hzg-TempBasisSoll 24.4Ich vermute da kommt auch der Fehler? Eventuell im Log?

Gruß Otto
Titel: Aw: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: Hausrobot am 29 April 2023, 11:19:50
Hallo Otto,
dann erscheint im mittleren Fenster die Ausgabe:

Wrote 04 bytes starting from f8 with 3333c341 (24.3999996185303)

Wirkt wie ein Debugmode.

verbose des WP-Device stand auf 3, Attribut gelöscht -> unbeirrt die Ausgabe, sicher aus 98_WKRCD4.pm.
Dort geschaut:
307 # SET command
308 #########################################################################
309 sub WKRCD4_Set($@)
310 {
..
354    return sprintf ("Wrote %02x bytes starting from %02x with %s (%s)", $bytes, $addr, unpack ('H*', $vp), unpack ($unp, $vp));



Vielleicht ist das zuviel des Guten an der Stelle. Den Rest des Moduls WKRCD4 verstehe ich so noch nicht.

Grüße Heimrobot
Titel: Aw: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: betateilchen am 29 April 2023, 11:41:14
Du hast jetzt schon mindestens drei Threads zu DOIF in den Anfängerfragen aufgemacht - ist Dir eigentlich schon aufgefallen, dass es für DOIF einen eigenen Forumbereich gibt?
Titel: Aw: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: Hausrobot am 29 April 2023, 11:46:33
Zitat von: betateilchen am 29 April 2023, 11:41:14Du hast jetzt schon mindestens drei Threads zu DOIF in den Anfängerfragen aufgemacht - ist Dir eigentlich schon aufgefallen, dass es für DOIF einen eigenen Forumbereich gibt?
Nein, verflixt, sorry, danke für den Hinweis. In der Suche fand ich zu viele Fragen überall und in der Sucheingrenzung war es nicht gelistet.

Kann ich / wer den Thread dahin bewegen, wo er eigentlich hingehört?

Viele Grüße
Titel: Aw: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: betateilchen am 29 April 2023, 12:05:45
Das kannst Du selbst machen. Am Ende der Bildschirmseite sollte sich ein Button befinden "Thema verschieben" oder so ähnlich.

Noch ein grundsätzlicher Tipp: https://forum.fhem.de/index.php?topic=13092.0
Titel: Aw: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: Otto123 am 29 April 2023, 16:27:30
Dann ist es ja vom Modul so gewollt, DOIF interpretiert die (ungewöhnliche) Ausgabe des set Befehls als Fehler.
Bei manchen Modulen hilft verbose <3 um sie still zu machen.

Ansonsten kannst Du mit "help WKRCD4" das Board ermitteln und dort eine Anfrage an den Modul Autor stellen.
Titel: Aw: DOIF: error - Reading wird gesetzt, ist aber kein Fehler
Beitrag von: Damian am 29 April 2023, 17:38:15
Zitat von: Hausrobot am 29 April 2023, 10:29:19Hallo,

ich setze bedingungsabhängig Werte in einer Wärmepumpe (älteres Modell, muss man "nachhelfen" ;) )
Defintion: defmod WPumpe WKRCD4 /dev/ttyUSB0@9600 60

Gesetzt wird so:
defmod di_wp_heizung DOIF ([SEdge:I_AC_Power:avg20] > 4300 ) ((set WPumpe Hzg-TempBasisSoll 24.4)) DOELSE ((set WPumpe Hzg-TempBasisSoll 20.4))
attr di_wp_heizung DOIF_Readings AC_Power_mittel:[SEdge:I_AC_Power:avg200]
attr di_wp_heizung disable 0
attr di_wp_heizung repeatcmd 900:1200
attr di_wp_heizung room 3 Heizung
attr di_wp_heizung verbose 5

Das Setzen der Werte per Hand liefert einen Dialog. Offenbar wird dieser in ein error-Reading bei DOIF abgelegt
error | set WPumpe Hzg-TempBasisSoll 20.4: Wrote 04 bytes starting from f8 with 3333a341 (20.3999996185303)

Ich ertrage das, comment wäre mir lieber. Hat es aber ggf. weitere Auswirkungen wenn ein error-Reading im DOIF gesetzt wird?

Viele Grüße
Hausrobot

Returnwert ungleich 0 oder "" wird im Reading error festgehalten, weil es meistens auf einen Fehler hinweist. Es hat sonst keine Auswirkungen auf das Verhalten oder Performance des Moduls.

Man kann es unterbinden, indem man "" als Ausgabe dranhängt:

defmod di_wp_heizung DOIF ([SEdge:I_AC_Power:avg20] > 4300 ) {fhem"set WPumpe Hzg-TempBasisSoll 24.4";""} ...