Optimalste Lösung für grafische Darstellung von MAX! Komponenten

Begonnen von sTaN, 04 Januar 2023, 16:31:47

Vorheriges Thema - Nächstes Thema

thburkhart

das wars nicht ....


ich kann im Ploteditor

[code]Diagram label, Source Spec Y-Axis,Plot-Type,Style,Width

Ventil

Logfile

parameter
[/code]


in Parameter nichts auswählen oder eingeben ...

1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

Wzut

Zitat von: thburkhart am 05 Januar 2023, 12:02:29
a) wie machst du das "automatisch"
b) wo includest den HT /WT, damit er auch gelogt und ausgewertet werden kann.
a. Man wertet mit einem notify den globalen Event DEFINED aus und packt da alles rein was das neue Device bekommen soll , Bsp :
define n_defined notify global:DEFINED.* { fhem("attr $EVTPART1 DbLogExclude .* ; attr $EVTPART1 event-on-change-reading .*");}

b. natürlich direkt am MAX Device

sodele der Punkt b. bringt uns direkt zu eurem letzten Thema : "Wunsch Werte werden nicht geplottet"

1. lasst die .gplot Dateien in Ruhe. Der Plot Editor macht das besser und vor allem fehlerfrei ( ich habe noch nie eine direkt bearbeitet !)
2. Wenn Werte nicht im Plot erscheinen sollte der erste Blick dem "Show preprocessed input" gelten, sind da überhaupt die gewünschten/vermissten Werte vorhanden ?
Wenn nein : weiter zum Device bzw. zum Event Montitor. Mit Sicherheit wurden die Events so beschnitten das das gewünschte gar nicht im Log bzw der DB stehen kann.
Bsp :
attr BAD_WT event-min-interval temperature:3600
attr BAD_WT event-on-change-reading temperature
attr BAD_WT event-on-update-reading temperature

min-interval : Bitte https://wiki.fhem.de/wiki/Event-min-interval lesen, vor allem der untere Abschnitt mit den Wechselwirkungen.
Und 3600 d.h. 1 Stunde ergibt mit Sicherheit keine "schöne" Kurve

event-on-change-reading temperature und event-on-update-reading temperature : ja wie soll den da ein anderer Wert (Reading) wie z.B. die Soll Temperatur überhaupt noch durch kommen ?
Vorschlag :
event-on-update löschen, die andren beiden :
attr <name> event-min-interval valveposition:300,desiredTemperature:300,temperature:300
attr <name> event-on-change-reading .*
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

thburkhart

#17
Zitat
b. natürlich direkt am MAX Device

sodele der Punkt b. bringt uns direkt zu eurem letzten Thema : "Wunsch Werte werden nicht geplottet"

1. lasst die .gplot Dateien in Ruhe. Der Plot Editor macht das besser und vor allem fehlerfrei ( ich habe noch nie eine direkt bearbeitet !)
2. Wenn Werte nicht im Plot erscheinen sollte der erste Blick dem "Show preprocessed input" gelten, sind da überhaupt die gewünschten/vermissten Werte vorhanden ?
Wenn nein : weiter zum Device bzw. zum Event Montitor. Mit Sicherheit wurden die Events so beschnitten das das gewünschte gar nicht im Log bzw der DB stehen kann.

Asche auf mein Haupt. Ich werde konsequent den Plot-Editor benutzen.

Wie erzeuge ich denn für ein DEVICE einen frischen Plot?
selbst gefunden im DbLOG; aber wie kann ich dein schönes Plot-Config übernehmen? nur händisch im Ploteditor?

Kann man eine bestehende irgendwie Clonen?



1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

thburkhart

Zitata. Man wertet mit einem notify den globalen Event DEFINED aus und packt da alles rein was das neue Device bekommen soll , Bsp :
Code: [Auswählen]
define n_defined notify global:DEFINED.* { fhem("attr $EVTPART1 DbLogExclude .* ; attr $EVTPART1 event-on-change-reading .*");}

klingt gut:
habe deinen Code
define n_defined notify global:DEFINED.* { fhem("attr $EVTPART1 DbLogExclude .* ; attr $EVTPART1 event-on-change-reading .*");}

einfach mal übernommen

und kriege:
Can't find string terminator '"' anywhere before EOF at (eval 1075035) line 1.

Please define $EVTPART1 first
Unknown command }, try help.


wo muss der String terminator rein?
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

Wzut

Zitat von: thburkhart am 06 Januar 2023, 15:02:33
wo muss der String terminator rein?
ne,ne die Zeile mit dem define ist schon richtig da fehlt nichts :)
OK dann wieder etwas FHEM Grundlagen:
notify und at sind etwas mädchenhaft wenn man statt einem simplen FHEM Kommando (Bsp set lamp on) etwas Perl Code beim define mit übergeben will.
Man kann dies auf (mir) zwei bekannte Arten lösen :
Variante a. man definiert zuerst sich ein leeres notify (at) ala :
define n_defined notify global:DEFINED.* {}
sobals FHEMWEB die Details aufmacht DEF be den Internals anklicken ({}] und das leere Klammerpaar jetzt mit Leben befüllen
{ fhem("attr $EVTPART1 DbLogExclude .* ; attr $EVTPART1 event-on-change-reading .*");}

Variante b:
irgend ein Device anklicken und ubńten Raw definition anklicken und das Fenster leer machen und dann das gewünschte einfügen . ala :
defmod n_defined notify global:DEFINED.* { fhem("attr $EVTPART1 DbLogExclude .* ;; attr $EVTPART1 event-on-change-reading .*");;}

(man beachte hier die doppelten Semikolons)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

thburkhart

#20
habe Variante b genommen:

Ergebnis
[code]define n_defined notify global:DEFINED.* { fhem("attr $EVTPART1 DbLogExclude .* ;; attr $EVTPART1 event-on-change-reading .*");;}
attr n_defined DbLogExclude .*
attr n_defined event-on-change-reading .*
#   CFGFN     
#   DEF        global:DEFINED.* { fhem("attr $EVTPART1 DbLogExclude .* ; attr $EVTPART1 event-on-change-reading .*");}
#   FUUID      63b9a799-f33f-fd5f-0f64-4e26bc3605f530f0
#   NAME       n_defined
#   NOTIFYDEV  global
#   NR         4411
#   NTFY_ORDER 50-n_defined
#   REGEXP     global:DEFINED.*
#   STATE      2023-01-07 18:10:49
#   TRIGGERTIME 1673111449.24354
#   TYPE       notify
#   eventCount 1
#   Helper:
#     DBLOG:
#       state:
#         dblog_THB:
#           TIME       1673111449.19793
#           VALUE      active
#   READINGS:
#     2023-01-07 18:10:49   state           active
#     2023-01-07 18:10:49   triggeredByDev  global
#     2023-01-07 18:10:49   triggeredByEvent DEFINED n_defined
#
setstate n_defined 2023-01-07 18:10:49
setstate n_defined 2023-01-07 18:10:49 state active
setstate n_defined 2023-01-07 18:10:49 triggeredByDev global
setstate n_defined 2023-01-07 18:10:49 triggeredByEvent DEFINED n_defined

[/code]

super :-) 
und das gilt nun für alle neuen und bestehenden Devices ?

Edit:
wohl nur für alle neuangelegten

Wie kann ich das zb: für alle MAX-Devices oder besonders für meine 65 TUYA-Devices in einem Rutsch übernehmen ?
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

sTaN

Zitat von: Wzut am 06 Januar 2023, 13:55:04
sodele der Punkt b. bringt uns direkt zu eurem letzten Thema : "Wunsch Werte werden nicht geplottet"

...
Vorschlag :
event-on-update löschen, die andren beiden :
attr <name> event-min-interval valveposition:300,desiredTemperature:300,temperature:300
attr <name> event-on-change-reading .*


Bei mir war es vermutlich lediglich das fehlende event-min-interval valveposition:300,desiredTemperature:300,temperature:300, da ich bis dato nur event-on-change-reading .* gesetzt hatte.

Danke Wzut!

Zitat von: thburkhart am 07 Januar 2023, 18:15:28
Wie kann ich das zb: für alle MAX-Devices oder besonders für meine 65 TUYA-Devices in einem Rutsch übernehmen ?

Beispielsweise mittels:
attr <devspec> event-on-change-reading .*

<devspec> könnte dann z.B.: TYPE=MAX enthalten. Steht sicher auch in der commandref.

Gruß
sTaN
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

thburkhart

ZitatBeispielsweise mittels:
Code: [Auswählen]
attr <devspec> event-on-change-reading .*

<devspec> könnte dann z.B.: TYPE=MAX enthalten. Steht sicher auch in der commandref.

hmm ein Beispiel habe ich dort nicht gefunden oder nicht verstanden.

Wäre also konkret attr TYPE=MAX event-on-change-reading .* in der Command-Zeile einzugeben.

lg

Thomas
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200