[ERLEDIGT] reading befüllen, wenn leer

Begonnen von the ratman, 03 August 2022, 14:58:35

Vorheriges Thema - Nächstes Thema

the ratman

grüß euch,
ich suche wieder mal eine lösung und komm nicht drauf.

ich habe in einem httpmod-modul ein reading, dass immer mal wieder nicht befüllt wird. das ist ein problem der quelle, nicht von fhem.

nachdem ich mir daten für das tool rainmeter unter windoof von eben diesem httpmod-modul ziehe und rainmeter keinen spaß mit leeren variablen hat, würde ich nach einer lösung suchen.

in kurz: gibt's eine einfache art, ein reading mit z.b. einem X zu befüllen, wenn das reading keinen wert mit gesendet bekommt?
→do↑p!dnʇs↓shit←

DetlefR

Zitatnachdem ich mir daten für das tool rainmeter unter windoof von eben diesem httpmod-modul ziehe

Wie sieht den das "ziehen" aus.
Lässt sich da evt. was machen

betateilchen

Zitat von: the ratman am 03 August 2022, 14:58:35
ich habe in einem httpmod-modul ein reading

readings hast Du höchstens in einem device, niemals in einem Modul.

Zitat von: the ratman am 03 August 2022, 14:58:35
in kurz: gibt's eine einfache art, ein reading mit z.b. einem X zu befüllen, wenn das reading keinen wert mit gesendet bekommt?

Ja, beispielsweise per Attribut:

Zitat von: commandref(get|reading)[0-9]*OExpr
defines an optional expression that is used in an eval to compute / format a readings value after parsing an HTTP response
The raw value from the parsing will be in the variable $val.

Damit kannst Du den Wert prüfen und entsprechend einen default-Wert eintragen, falls beim parsen kein brauchbarer Wert gefunden wurde.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

the ratman

gleich mal thx für die flotten reaktionen!

@DetlefR
ginge sicher ... nur wird da wieder lustig regex verwendet, mit dem ich wohl bis zu meinem ableben (und darüber hinaus) auf kriegsfuß stehe. da frag ich lieber von fhem seite her. hier gibt's wenigstens brauchbare antworten *g*

@betateilchen
warum kling das bei dir immer so einfach und ich hab trotzdem keine ahnung, was ich nu machen muss.
was muss ich da genau eintragen, wenn ich unter vielen readings z.b. ein reading "betateilchen" habe?
→do↑p!dnʇs↓shit←

DetlefR

userReadings geht auch

attr <device> userReadings mitWert:ohneWert.* {ReadingsVal($name,'ohneWert','') eq '' ? 'Ersatz':ReadingsVal($name,'ohneWert','Ersatz');}

ungetestet.

the ratman

das wäre bei mir dann:
jobstatusFine:jobstatus.* {ReadingsVal($name,'jobstatus','') eq '' ? 'jobstatusFine':ReadingsVal($name,'jobstatus','X');} oder?
wobei "jobstatus" das original reading wäre und "jobstatusFine" das neue mit dem x

er legt nicht mal das reading "jobstatusFine" an - auch ned, nach 'nem reread
→do↑p!dnʇs↓shit←

betateilchen

Zitat von: the ratman am 03 August 2022, 15:24:19
was muss ich da genau eintragen, wenn ich unter vielen readings z.b. ein reading "betateilchen" habe?

Diese Frage kann Dir niemand beantworten, solange Du kein list des gesamten devices gepostet hast, aus dem man erkennt, wie Du die readings überhaupt erzeugst.

In einem meiner HTTPMOD-devices findet sich beispielsweise folgendes:


attr myDevice reading01Name blub
attr myDevice reading01OExpr $val=~s/,\d//;;$val<2?int($val*1000):int($val)
attr myDevice reading01Regex \n\s+([\d.]+,\d+)


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

the ratman

gut, ich hab 3 neue attribute
aber eintragen tut er mir in mein reading nix

schaut jetzt so aus:reading01Name jobstatus deleteattr
reading01OExpr $val=~s/,\d//;$val<2?int($val*1000):int($val) deleteattr
reading01Regex \n\s+([\d.]+,\d+) deleteattr

und wo müsste ich da eigentlich mein x mit senden?

was mir jetzt natürlich in den kopf kommt, falls das wichtig ist: das reading muss auch beschrieben werden, wenn mein drucker z.b. nicht erreichbar ist, weil er, wie z.b. jetzt grade, gar nicht im netzwerk ist.

na wennst n list willst, kriegst natürlich eines:Internals:
   BUSY       1
   DEF        http://192.168.178.9/command 5
   FUUID      5f4e00ed-f33f-f543-2e1d-6dc7f8ca5c655dd1
   Interval   5
   MainURL    http://192.168.178.9/command
   ModuleVersion 4.1.12 - 19.4.2022
   NAME       dremel3d45
   NOTIFYDEV  global
   NR         310
   NTFY_ORDER 50-dremel3d45
   STATE      ready
   TYPE       HTTPMOD
   eventCount 7790
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       http://192.168.178.9:80
     auth       0
     data       GETPRINTERSTATUS
     displayurl http://192.168.178.9/command
     header     
     host       192.168.178.9
     httpversion 1.0
     ignoreredirects 1
     loglevel   4
     path       /command
     protocol   http
     redirects  0
     timeout    2
     url        http://192.168.178.9/command
     sslargs:
   QUEUE:
   READINGS:
     2022-07-20 12:35:36   buildPlate_target_temperature 0
     2022-07-20 12:35:36   chamber_temperature 0
     2022-07-20 12:35:34   door_open       0
     2022-07-20 12:35:36   elaspedtime     0
     2022-07-20 12:35:34   error_code      200
     2022-07-20 12:35:36   extruder_target_temperature 0
     2022-07-20 12:35:34   fanSpeed        0
     2022-07-20 12:35:34   filament_type_  PETG
     2022-07-20 12:35:34   firmware_version v3.0_R02.12.10
     2022-07-20 12:35:34   jobname         
     2022-08-03 19:27:34   jobname_simpel 
     2022-07-20 12:35:34   jobstatus       
     2022-07-20 12:35:34   layer           0
     2022-07-20 12:35:34   message         success
     2022-07-20 12:35:34   networkBuild    0
     2022-07-20 12:35:36   platform_temperature 0
     2022-07-20 12:35:36   progress        0
     2022-07-20 12:35:36   remaining       0
     2022-07-20 12:35:34   status          ready
     2022-07-20 12:35:36   temperature     0
     2022-07-20 12:35:36   totalTime       0
     2022-08-03 19:27:34   zeit_gesamt     00 h 00 min
     2022-08-03 19:27:34   zeit_offen      00 h 00 min
     2022-08-03 19:27:34   zeit_vergangen  00 h 00 min
   REQUEST:
     context    reading
     data       GETPRINTERSTATUS
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        http://192.168.178.9/command
Attributes:
   alias      die fabrik - daten
   disable    0
   extractAllJSON 1
   group      3d druck
   icon       3d_printer
   reading01Name jobstatus
   reading01OExpr $val=~s/,\d//;$val<2?int($val*1000):int($val)
   reading01Regex \n\s+([\d.]+,\d+)
   requestData GETPRINTERSTATUS
   room       computer
   stateFormat status
   userReadings zeit_vergangen { strftime('%H h %M min',gmtime(ReadingsNum($NAME,"elaspedtime",0))) },
zeit_offen { strftime('%H h %M min',gmtime(ReadingsNum($NAME,"remaining",0))) },
zeit_gesamt { strftime('%H h %M min',gmtime(ReadingsNum($NAME,"totalTime",0))) },
jobname_simpel { my $js = ReadingsVal($NAME,"jobname",0);if ($js =~/zGapTest/){return "teste düsen kalibrierung";} $js=~s/.gcode//; $js=~s/_/ /g;$js;}
→do↑p!dnʇs↓shit←

DetlefR

Zitat
er legt nicht mal das reading "jobstatusFine" an - auch ned, nach 'nem reread
2022-07-20 12:35:34   jobstatus
jobstatus hat sich auch noch nicht geaendert. Dann wird auch nichts angelegt.
Wenn als Ersatz ein X drin stehn soll, dann so.
Zur Not mittels "setreading" mal eine Änderung vortäuschen.

jobstatusFine:jobstatus.* {ReadingsVal($name,'jobstatus','') eq '' ? 'X':ReadingsVal($name,'jobstatus','X');}

Beta-User

"Komische" Zeitstempel haben die, deine userReadings (mach da mal einen sauberen Trigger hin)...

Ansonsten passiert da anscheinend gar nichts, der Rest hat lt. list "uralt"-Zeitstempel, und dann klappt das (erst recht!) nicht mit dem weiteren userReadings-Eintrag, der "auch nur" die Datenmenge erhöht, statt das Tier direkt zu erlegen.
Solange da anscheinend gar nichts wirklich verwertbares zurückkommt, dürfte das auf diesem Weg schwierig werden...

Und den Code von betateilchen 1:1 (vermeintlich?) zu übernehmen, ist für sich genommen dann wohl auch nicht im Sinne des Erfinders gewesen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

the ratman

#10
die zeitstempel passen schon - hab länger schon nix mehr gedruckt *g*
die paar zeitstempel, die aktuell sind, sind die userreadings, die da vor sich hin tuckern.
und passieren kann ja auch nix, weil der drucker, wie gesagt, nicht im netz ist. das ding ist aus.

das ist ja mein problem. der rainmeter fragt ja trotzdem werte ab, egal, ob da welche sind. und wenns keine werte gibt, verschiebt das dumme ding die vars ... da kommt also böser schrott dann raus.

interessant find ich auch, dass sich httpmod alle readings merkt, nur den dämlichen jobstatus nicht. d.h.: sobald ich fhem update, oder sonst mal was nicht passt, ist der jobstatus leer.


falls sich wer mit rainmeter auskennt, das script schaut so aus ... ich habs nicht geschafft, eine leere variable ind was anderes zu wandeln.[Rainmeter]
Update=1000
BackgroundMode=0
DynamicWindowSize=1

################################################################################################################
#####   BEZEICHNUNG
################################################################################################################

[linie]
Meter=Image
X=0
Y=530
W=140
H=1
SolidColor=20,20,20,255
[kreis_aussen]
Meter=Roundline
x=140
y=500
W=60
H=60
StartAngle=(Rad(270))
RotationAngle=(Rad(360))
LineWidth=1
LineStart=28
LineLength=30
LineColor=20,20,20,255
Solid=1
AntiAlias=1
[kreis_füllung]
Meter=Roundline
x=141
y=501
W=58
H=58
LineWidth=1
LineStart=0
LineLength=29
LineColor=100,100,100,150
Solid=1
AntiAlias=1
[Text1]
Meter=String
X=2
Y=508
FontFace=Bahnschrift
FontColor=200,200,200,255
FontEffectColor0,0,0
StringEffect=Border
FontSize=16
AntiAlias=1
Text=die fabrik

################################################################################################################
#####   INFO KAMERA + POPUP BROWSER
################################################################################################################

[MeterCam]
Meter=Image
ImageName=cam.png
X=145
Y=505
W=50
H=50
LeftMouseUpAction=["C:\Program Files (x86)\Microsoft\Edge\Application\msedge_proxy.exe"  --profile-directory=Default --app-id=djnakkbihifpmpdbpncdllhbceogjcmp --app-url=http://192.168.178.9:10123/stream_simple.html --app-launch-source=4]

[kreis2_aussen]
Meter=Roundline
x=185
y=545
W=40
H=40
LineWidth=1
LineStart=19
LineLength=20
LineColor=20,20,20,255
Solid=1
AntiAlias=1

[kreis2_füllung]
Meter=Roundline
x=186
y=546
W=38
H=38
LineWidth=1
LineStart=0
LineLength=19
LineColor=100,100,100,150
Solid=1
AntiAlias=1

################################################################################################################
#####   ABFRAGE DATEN BEI FHEM
################################################################################################################

[Measure_Dremel3D45]
Measure=Plugin
Plugin=WebParser.dll
URL=http://192.168.178.8:8083/fhem?cmd=jsonlist+dremel3d45+jobstatus+status+platform_temperature+buildPlate_target_temperature+temperature+extruder_target_temperature+chamber_temperature+door_open+jobname_simpel+filament_type_+layer+message+zeit_gesamt+zeit_offen+zeit_vergangen+progress&XHR=1
RegExp=(?siU)"buildPlate_target_temperature": { "Value":"(.*)".*"chamber_temperature": { "Value":"(.*)".*"door_open": { "Value":"(.*)".*"extruder_target_temperature": { "Value":"(.*)".*"filament_type_": { "Value":"(.*)".*"jobname_simpel": { "Value":"(.*)".*"jobstatus": { "Value":"(.*)".*"layer": { "Value":"(.*)".*"message": { "Value":"(.*)".*"platform_temperature": { "Value":"(.*)".*"progress": { "Value":"(.*)".*"status": { "Value":"(.*)".*"temperature": { "Value":"(.*)".*"zeit_gesamt": { "Value":"(.*)".*"zeit_offen": { "Value":"(.*)".*"zeit_vergangen": { "Value":"(.*)"
UpdateRate=1

[Measure_buildPlate_target_temperature]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=1

[Measure_chamber_temperature]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=2

[Measure_door_open]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=3
Substitute="0":"geschlossen","1":"offen"

[Measure_extruder_target_temperature]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=4

[Measure_filament_type_]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=5
Substitute="PLA":"PLA - bauraumlüfter ein","PETG":"PETG - bauraumlüfter aus","ECO-ABS":"ECO-ABS - bauraumlüfter ein"

[Measure_jobname]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=6
Substitute="zGapTest.g":"kalibirierung der nozzle"

[Measure_jobstatus]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
Substitute="^(.)(.*)"^$":"0", ".*pausing":"pause"
StringIndex=7

[Measure_layer]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=8

[Measure_message]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=9

[Measure_platform_temperature]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=10

[Measure_progress]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=11
MinValue=0
MaxValue=100

[Measure_status]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
Substitute="busy":"beschäftigt","ready":"fertig"
StringIndex=12

[Measure_temperature]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=13

[Measure_zeit_gesamt]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=14

[Measure_zeit_offen]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=15

[Measure_zeit_vergangen]
Measure=Plugin
Plugin=WebParser
URL=[Measure_Dremel3D45]
StringIndex=16

################################################################################################################
#####   INFO JOBSTATUS + POPUP INFO SCHALTEN
################################################################################################################

[Status]
Meter=Image
MeasureName=Measure_jobstatus
;ImageName=%1.png
X=189
Y=549
W=32
H=32
DynamicVariables=1
LeftMouseUpAction=[!ToggleMeterGroup "info"]|[!UpdateGroup "info"]

################################################################################################################
#####   INFO FORTSCHRITT ALS TEXT
################################################################################################################

[fertig]
Meter=String
MeasureName=Measure_zeit_offen
X=5
Y=532
StringAlign=left
FontFace=Bahnschrift
FontColor=150,150,150
FontEffectColor0,0,0
StringEffect=Border
FontSize=12
AntiAlias=1
Text=noch %1
[fertig2]
Meter=String
MeasureName=Measure_progress
X=5
Y=548
StringAlign=left
FontFace=Bahnschrift
FontColor=150,150,150
FontEffectColor0,0,0
StringEffect=Border
FontSize=12
AntiAlias=1
Text=fertig zu %1 %

################################################################################################################
#####   INFO IO
################################################################################################################

[kreis3_aussen]
Meter=Roundline
x=198
y=500
W=40
H=40
LineWidth=1
LineStart=19
LineLength=20
LineColor=20,20,20,255
Solid=1
AntiAlias=1
[kreis3_füllung]
Meter=Roundline
x=199
y=501
W=38
H=38
LineWidth=1
LineStart=0
LineLength=19
LineColor=100,100,100,150
Solid=1
AntiAlias=1

[MeasureIO]
Measure=WebParser
URL=http://192.168.178.8:8083/fhem?cmd={ReadingsVal(%22HUEDevice13%22,%22onoff%22,0)}&XHR=1
RegExp=(.*)
UpdateRate=1
StringIndex=1

[schalterIO]
Meter=Image
MeasureName=MeasureIO
ImageName=%1.png
X=201
Y=504
W=32
H=32
LeftMouseUpAction=[!ToggleMeterGroup "IO"]|[!UpdateGroup "IO"]

################################################################################################################
#####   POPUP IO-SCHALTER
################################################################################################################

[io_kreis_aussen]
Group=IO
Hidden=1
Meter=Roundline
X=170
Y=538
LineWidth=2
LineStart=0
LineLength=40
LineColor=20,20,20,150
Solid=1
AntiAlias=1
[io_kreis_füllung]
Group=IO
Hidden=1
Meter=Roundline
X=170
Y=538
LineWidth=1
LineStart=0
LineLength=40
LineColor=200,200,200,150
Solid=1
AntiAlias=1

[io_schalter]
Group=IO
Hidden=1
Meter=Image
MeasureName=MeasureIO
ImageName=%1.png
X=122
Y=490
W=90
H=90
LeftMouseUpAction=["#CURRENTPATH#WebPost.exe" "http://192.168.178.8:8083/fhem?cmd.HUEDevice13=set HUEDevice13 toggle"]|[!ToggleMeterGroup "IO"]

################################################################################################################
#####   POPUP INFO
################################################################################################################
#[info_rahmen schatten]
#Group=info
#Hidden=1
#Meter=Shape
#Shape=Rectangle 0,0,530,210,10 | Fill Color 0,0,0,255
#x=253
#y=354

[info_rahmen]
Group=info
Hidden=1
Meter=Shape
Shape=Rectangle 0,0,530,210,10 | Fill Color 255,255,255,255
x=250
y=351
LeftMouseUpAction=[!ToggleMeterGroup "info"]|[!UpdateGroup "info"]
[info_linie1]
Group=info
Hidden=1
Meter=Image
x=250
y=385
W=530
H=1
SolidColor=0,0,0
[info_linie2]
Group=info
Hidden=1
Meter=Image
x=250
y=408
W=530
H=1
SolidColor=0,0,0
[info_linie3]
Group=info
Hidden=1
Meter=Image
x=530
y=386
W=1
H=120
SolidColor=0,0,0

[TextÜberschrift]
Group=info
Hidden=1
Meter=String
X=260
Y=360
FontFace=Bahnschrift
FontColor=200,200,200,255
FontEffectColor0,0,0
#StringEffect=Border
StringStyle=BoldItalic
FontSize=14
AntiAlias=1
MeasureName=Measure_jobname
Text=%1
##########
[TextStatusT]
Group=info
Hidden=1
Meter=String
X=260
Y=390
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=status:
[TextStatus]
Group=info
Hidden=1
Meter=String
X=380
Y=390
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_status
Text=%1
##########
[fertig_bar]
Group=info
Hidden=1
MeasureName=Measure_progress
Meter=BAR
x=531
Y=386
W=248
H=22
BarBorder=0
BarColor=0,150,0
SolidColor=200,0,0
BarOrientation=Horizontal
Dynamic Variables
[fertig_bar_text]
Group=info
Hidden=1
Meter=String
MeasureName=Measure_progress
X=550
Y=390
StringAlign=left
FontFace=Bahnschrift
FontColor=255,255,255,255
FontSize=11
AntiAlias=1
Text=fertig zu %1 %
##########

[TextÜberschriftTemp]
Group=info
Hidden=1
Meter=String
X=260
Y=415
FontFace=Bahnschrift
FontColor=0,0,0,255
FontEffectColor0,0,0
#StringEffect=Border
StringStyle=BoldItalic
FontSize=14
AntiAlias=1
Text=temperaturen
##########
[TextNozzleTempT]
Group=info
Hidden=1
Meter=String
X=260
Y=440
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=düse:
[TextNozzleTemp]
Group=info
Hidden=1
Meter=String
X=380
Y=440
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_temperature
MeasureName2=Measure_extruder_target_temperature
Text=%1°c von %2°c
##########
[TextBettTempT]
Group=info
Hidden=1
Meter=String
X=260
Y=460
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=bett:
[TextBettTemp]
Group=info
Hidden=1
Meter=String
X=380
Y=460
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_platform_temperature
MeasureName2=Measure_buildPlate_target_temperature
Text=%1°c von %2°c
##########
[TextGehäuseTempT]
Group=info
Hidden=1
Meter=String
X=260
Y=480
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=bauraum:
[TextGehäuseTemp]
Group=info
Hidden=1
Meter=String
X=398
Y=480
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_chamber_temperature
MeasureName2=Measure_door_open
Text=%1°c

[tuer]
Group=info
Hidden=1
Meter=Image
MeasureName=Measure_door_open
ImageName=%1.png
X=380
Y=478
W=16
H=16
DynamicVariables=1

[venti]
Group=info
Hidden=1
Meter=Image
MeasureName=Measure_fanSpeed
ImageName=%1.png
X=400
Y=478
W=16
H=16
DynamicVariables=1

##########

[TextÜberschriftZeit]
Group=info
Hidden=1
Meter=String
X=550
Y=415
FontFace=Bahnschrift
FontColor=0,0,0,255
FontEffectColor0,0,0
#StringEffect=Border
StringStyle=BoldItalic
FontSize=14
AntiAlias=1
Text=zeiten
##########
[TextErstZeitT]
Group=info
Hidden=1
Meter=String
X=550
Y=440
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=erstschätzung:
[TextErstZeit]
Group=info
Hidden=1
Meter=String
X=690
Y=440
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_zeit_gesamt
Text=%1
##########
[TextVergangenT]
Group=info
Hidden=1
Meter=String
X=550
Y=460
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=vergangen:
[TextVergangen]
Group=info
Hidden=1
Meter=String
X=690
Y=460
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_zeit_vergangen
Text=%1
##########
[TextÜbrigT]
Group=info
Hidden=1
Meter=String
X=550
Y=480
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=übrig:
[TextÜbrig]
Group=info
Hidden=1
Meter=String
X=690
Y=480
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_zeit_offen
Text=%1
##########
[info_linie4]
Group=info
Hidden=1
Meter=Image
x=250
y=505
W=530
H=1
SolidColor=0,0,0

[TextFilamntT]
Group=info
Hidden=1
Meter=String
X=260
Y=514
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
Text=vorgewählt:
[TextFilament]
Group=info
Hidden=1
Meter=String
X=380
Y=514
FontFace=Bahnschrift
FontColor=0,0,0
FontSize=11
AntiAlias=1
MeasureName=Measure_filament_type_
Text=%1

##########
[info_linie5]
Group=info
Hidden=1
Meter=Image
x=250
y=535
W=530
H=1
SolidColor=0,0,0

[TextBauraum]
Group=info
Hidden=1
Meter=String
X=330
Y=540
FontFace=Bahnschrift
FontColor=200,200,200
FontSize=11
##StringStyle=BoldItalic
AntiAlias=1
Text=bauraum: 255mm breite x 155mm tiefe x 170mm höhe

################################################################################################################
#####   NOT AUS
################################################################################################################

[na_füllung]
Meter=Roundline
X=119
Y=513
LineWidth=1
LineStart=0
LineLength=17
LineColor=200,200,200,75
Solid=1
AntiAlias=1
[schalterNA]
Meter=Image
ImageName=notaus.png
X=106
Y=500
W=26
H=26
LeftMouseUpAction=[!ToggleMeterGroup "NA"]|[!UpdateGroup "NA"]
ToolTipTitle=ACHTUNG!
ToolTipType=1
ToolTipIcon=Warning
ToolTipText=NOT AUS#CRLF#SCHALTER

#####   NOT AUS POPUP
[NA_schalter_füllung]
Group=NA
Hidden=1
Meter=Roundline
X=193
Y=531
LineWidth=1
LineStart=0
LineLength=48
LineColor=255,0,0,255
Solid=1
AntiAlias=1
[NA_schalter]
Group=NA
Hidden=1
Meter=Image
ImageName=notaus.png
X=142
Y=480
W=100
H=100
LeftMouseUpAction=["#CURRENTPATH#WebPost.exe" "http://192.168.178.8:8083/fhem?cmd.doif_dremel3d45_schalten=set doif_dremel3d45_schalten stop ja"]|[!ToggleMeterGroup "NA"]

################################################################################################################
#####   plot
################################################################################################################

[info_plot_hintergrund_oben]
Group=info
Hidden=1
Meter=Shape
Shape=Rectangle 0,0,123,90,10 | Fill Color 255,255,255,255
x=783
y=351
LeftMouseUpAction=[!ToggleMeterGroup "info"]|[!UpdateGroup "info"]

#[info_plot_hintergrund_unten]
#Group=info
#Hidden=1
#Meter=Shape
#Shape=Rectangle 0,0,123,68,10 | Fill Color 100,100,100,50
#x=783
#y=442
#LeftMouseUpAction=[!ToggleMeterGroup "info"]|[!UpdateGroup "info"]

[measure_plot_nozzle]
Measure=Calc
Formula=Measure_temperature / 3
MinValue=210
MaxValue=300

[meter_plot_düse]
Group=info
Hidden=1
Meter=Line
MeasureName=measure_plot_nozzle
x=783
y=351
W=123
H=80
LineCount=1
LineColor=200,200,200,255
AutoScale=0
AntiAlias=1

[text_plot]
Group=info
Hidden=1
Meter=String
X=843
Y=450
FontFace=Bahnschrift
FontColor=250,250,250,255
FontEffectColor0,0,0
#StringEffect=Border
#StringStyle=Bold
StringAlign=Center
FontSize=12
AntiAlias=1
Text=düse#CRLF##CRLF#bett & raum

[info_plot_bed-room]
Group=info
Hidden=1
Meter=Shape
Shape=Rectangle 0,0,123,50,10 | Fill Color 255,255,255,255
x=783
y=511
LeftMouseUpAction=[!ToggleMeterGroup "info"]|[!UpdateGroup "info"]


[meter_plot_platform]
Group=info
Hidden=1
Meter=Line
MeasureName=Measure_platform_temperature
MeasureName2=Measure_chamber_temperature
x=783
y=511
W=123
H=50
LineCount=2
LineColor=000,200,000,255
LineColor2=000,000,200,255
AutoScale=1
AntiAlias=1
MinValue=0
MaxValue=280
→do↑p!dnʇs↓shit←

betateilchen

Zitat von: the ratman am 03 August 2022, 19:29:11
gut, ich hab 3 neue attribute
aber eintragen tut er mir in mein reading nix

es macht absolut keinen Sinn, die drei von mir geposteten Beispielzeilen in Dein Device einzutragen...


--
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

the ratman

ja, sind schon länger wieder draußen *g*
hehe, ich dacht ned, dass es so schwer wird mit einer leeren variable ...

ich könnt eventuell ein doif schreiben und das reading überwachen und anpassen. fragt sich nur, was dann wieder passiert, wenns timing im rainmeter nicht stimmt.
und elegant ist das auch nicht wirklich in meinen augen.
→do↑p!dnʇs↓shit←

Guybrush

Zitat von: DetlefR am 03 August 2022, 19:40:08
Wenn als Ersatz ein X drin stehn soll, dann so.
jobstatusFine:jobstatus.* {ReadingsVal($name,'jobstatus','') eq '' ? 'X':ReadingsVal($name,'jobstatus','X');}

mal eine blöde frage. Wozu da die If Bedingung in deinem Beispiel?

der 3. Parameter ist doch schon der Fallback/Default wert, falls da ein undefined kommt?
jobstatusFine:jobstatus.* {ReadingsVal($name,'jobstatus','X')}

OdfFhem


attr dremel3d45 reading01MaxAge 1
attr dremel3d45 reading01MaxAgeReplacement "X"
attr dremel3d45 reading01MaxAgeReplacementMode text


Soll bewirken, dass bei einem reread das Reading nicht älter als 1 Sekunde sein darf. Wenn doch älter, dann wird das Reading mit X überschrieben.