Ich möchte hier einmal aufzeigen wie man das Display in Fhem einbinden kann.
Zuerst lädt man sich awtrix light auf die Ulanzi TC001
https://blueforcer.github.io/awtrix-light/#/
Man kann sich entscheiden über welche arten das Display mit Meldungen gefüttert wird.
1. Variante ist mittels http api Aufrufe:
hier kann man sich ein shell script basteln das wir dann über Fhem aufrufen und mit Daten füttern:
Das Shell Script:
#!/bin/sh
curl -s -X POST --data '{"text":"'$1:$2'","color":[0,255,255],"icon":"35"}' -H 'Content-Type: application/json' 'http://<IP-ADRESSE>/api/notify' &> /dev/null
Der Notify bei dem z.b. Anrufe aus dem Fritzcall modul mir den namen des Anrufers in $a setzt und die Rufnummer in $b was wir dann an das Shell script beim Aufruf mit anhängen:
defmod notify_Display_Anruf notify FritzAnrufe:event:.ring {my $a = ReadingsVal($NAME,"external_name","");; my $b = ReadingsVal($NAME,"external_number","");; system("sh /opt/fhem/FHEM/scripte/notifyanruf.sh $a $b > /dev/null")}
2. Variante ist mit MQTT füttern:
dazu legen wir das als MQTT Device in Fhem an:
defmod Display_Wohnzimmer MQTT2_DEVICE awtrix_TC001 #anmerkung, der mqtt Name muss auch in awtrix eingetragen werden
attr Display_Wohnzimmer cmdIcon false:on true:off
attr Display_Wohnzimmer icon display_dot
attr Display_Wohnzimmer setList on:noArg awtrix_TC001/power {"power": true}\
off:noArg awtrix_TC001/power {"power": false}\
brightness:colorpicker,BRI,0,1,255 awtrix_TC001/moodlight {"$EVTPART0":"$EVTPART1"}\
kelvin:colorpicker,CT,2500,1,6000 awtrix_TC001/moodlight {"$EVTPART0":"$EVTPART1"}\
color:colorpicker,RGB awtrix_TC001/moodlight {"$EVTPART0":"$EVTPART1"}\
text awtrix_TC001/notify {"$EVTPART0":"$EVTPART1"}\
progress awtrix_TC001/notify {"$EVTPART0":"$EVTPART1"}\
notify awtrix_TC001/notify\
custom awtrix_TC001/custom\
notifytext1 awtrix_TC001/notify {"icon": "$EVTPART2","text": [{"t": "$EVTPART5","c":"$EVTPART3"},{"t": "$EVTPART6","c": "$EVTPART4"}]}\
Battdisplay1 awtrix_TC001/custom/$EVTPART1 {"icon": "$EVTPART2","progress": "$EVTPART5","text": [{"t": "$EVTPART6","c":"$EVTPART3"},{"t": "$EVTPART7","c": "$EVTPART4"}]}\
apptext1 awtrix_TC001/custom/$EVTPART1 {"icon": "$EVTPART2","text": [{"t": "$EVTPART5","c":"$EVTPART3"},{"t": "$EVTPART6 ","c": "$EVTPART4"}]}\
apptext2 awtrix_TC001/custom/$EVTPART1 {"icon": "$EVTPART2","text": [{"t": "$EVTPART5","c":"$EVTPART3"},{"t": "$EVTPART6 ","c": "$EVTPART4"},{"t": "$EVTPART7","c": "$EVTPART3"},{"t": "$EVTPART8","c": "$EVTPART4"}]}\
apptext3 awtrix_TC001/custom/$EVTPART1 {"icon": "$EVTPART2","text": [{"t": "$EVTPART5","c":"$EVTPART3"},{"t": "$EVTPART6 ","c": "$EVTPART4"},{"t": "$EVTPART7","c": "$EVTPART3"},{"t": "$EVTPART8 ","c": "$EVTPART4"},{"t": "$EVTPART9","c": "$EVTPART3"},{"t": "$EVTPART8","c": "$EVTPART4"}]}
attr Display_Wohnzimmer stateFormat Batterie: bat
kelvin und color ist wenn man das Display einfach als licht verwenden will, wie man das wieder ausschaltet hab ich noch nicht rausgefunden außer durch reboot :-)
hier habe ich ein paar vordefinitionen gemacht. Mann kann hier notify senden, das wird dann sofort auf dem Display angezeigt, oder man kann das als app senden (im prinzip eine zusätzliche seite die nach der eingestellten zeit wechselt)
Ich schicke aus den notifys oder doifs an das mqtt device die entsprechenden aufrufe und Daten.
Um es flexibel zu halten und nicht alles im jeweiligen Notify komplett einzubauen rufe ich das ganze so auf:
defmod notify_Display_Aussenfeuchte notify Wetterstation:humidity.* \
{my $farbsteuerung = sprintf('%.0f', $EVTPART1);;;;\
my $farbetext = $farbsteuerung >= 80 ? '0000FF' :\
$farbsteuerung >= 65 ? '0099FF' :\
$farbsteuerung >= 50 ? '00FF77' :\
$farbsteuerung >= 40 ? '22FF00' :\
$farbsteuerung >= 30 ? '99FF00' :\
$farbsteuerung >= 20 ? 'FFFF00' :\
'FF0000';;;;\
\
{fhem("set Display_Wohnzimmer apptext1 feuchte 39042 $farbetext FFFFFF $EVTPART1 %")}}
attr notify_Display_Aussenfeuchte room Notify_DOIF
im Prinzip wird hier Display_Wohnzimmer apptext1 ein set gemacht, es legt mir eine app feuchte an mit dem Icon 39042 das ich auf der Uhr runtergeladen habe. Im apptext1 habe ich vorgesehen das ich den wert mit seiner eigenen Farbe setze, und dann noch die Einheit mit ebenfalls eigenen Farbwert.
Anderes Beispiel bei dem ich für meine Solarbatterie auch den Ladezustand mit einem Balken versehe und die momentan entnommene Leistung wird mir als Text angezeigt:
defmod notify_Display_PVBatterie notify RCTModbus:batteryPercent.* \
{my $a = ReadingsVal($NAME,"Battery_Power","") >= 1000 ? sprintf("%.1f",ReadingsVal($NAME,"Battery_Power","")/1000):\
ReadingsVal($NAME,"Battery_Power","") <= -1000 ? sprintf("%.1f",ReadingsVal($NAME,"Battery_Power","")/1000):\
ReadingsVal($NAME,"Battery_Power","");;;;\
\
my $balken = sprintf("%.0f",$EVTPART1);;;;\
my $einheit = ReadingsVal($NAME,"Battery_Power","") >= 1000 ? 'kW' :\
ReadingsVal($NAME,"Battery_Power","") <= -1000 ? 'kW' :\
'W';;;; \
\
my $icondisplay = $EVTPART1 >= 80 ? '2741' :\
$EVTPART1 >= 60 ? '2740' :\
$EVTPART1 >= 40 ? '2739' :\
$EVTPART1 >= 20 ? '2738' :\
'2737';;;;\
fhem("set Display_Wohnzimmer Battdisplay1 PVbatterie $icondisplay 00FF00 FFFFFF $balken $a $einheit")}
attr notify_Display_PVBatterie room Notify_DOIF
3. Variante das man im Notify bereits den MQTT Code einbaut. Hierbei funktioniert das ganze auch mit Leerzeichen die sonst beim Variablen übergeben nicht funktioniert:
Hier lasse ich mir anzeigen welche Fenster offen sind, bzw. länger offen sind was ich aus dem Monitoring raushole, da hier die Texte sehr lang sind, scrollt das ganze durch:
defmod notify_Display_OffeneFenster notify Fenster_monitoring:.* {my $a = ReadingsVal("Fenster_monitoring","error","");;;; \
my $b = ReadingsVal("Fenster_monitoring","warning","");;;;\
fhem(qq(set MQTT publish awtrix_TC001/custom/Fenster {"icon": "23847","duration":"20","text": [{"t": "Lang Offen:","c":"FFFFFF"},{"t": "$a","c": "FFFF00"},{"t": " Kurz Offen:","c":"FFFFFF"},{"t": "$b","c": "FFFF00"}]}))}
attr notify_Display_OffeneFenster room Notify_DOIF
Hallo laserrichi,
ich habe seit zwei Tagen ebenfalls die TC001 mit AWTRIX Light Firmware, und dein Guide hat mir sehr weitergeholfen.
Ein Hinweis an alle, die wie ich bei Punkt 3 verzweifelt sind: In der Zeile
fhem(qq(set MQTT publish ...
bezieht sich "MQTT" auf den Server, also in meinem Falle:
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
musste ich hier MQTT2_FHEM_Server eintragen. Ist klar wenn man Erfahrung hat, für mich als absoluten MQTT Neuling war das aber eine echte Hürde :-)
Aber den Rest konnte ich super an meine Bedürfnisse anpassen und das hat mir den Einstieg sehr erleichtert! Vor allem da AwTrix in der FHEM Community im Gegensatz zu manch anderer Heimautomatisierung bisher eher eine Nischenrolle fristet, was ich sehr schade finde...
Hallo laserrichi,
habe mir das ganze auch mal eingerichtet. Danke für Deine Anleitung.
Was mir aber beim besten Willen nicht gelingt ist im MQTT2-Device eine custom-App zu erzeugen mit Deiner setList-Vorgabe
custom awtrix_TC001/custom
Wie übergibst Du den Namen? Ich habe es wie folgt probiert, die Seite wird aber nicht erzeugt.
test {"icon":"batman","text":"test"}
oder
/test {"icon":"batman","text":"test"}
Wenn ich den Namen der App in der setList-Vorlage mit angebe und dann nur den JSON-Teil eingebe klappt es.
Ich vermute zwischen der Vorlage und der Eingabe wird immer noch ein Leerzeichen eingefügt. Hast Du dafür eine Lösung?
Danke Reinhard
wenn ich dich richtig verstehe willst du mit dem web befehl set custom eine app anlegen ?
Geht bei mir so auch nicht...
Hab mir mal das ganze mit dem MQTT Explorer angesehen, du hast recht, es sieht für mich auch so aus als das hier immer ein Leerzeichen drin ist.
ich rufe die meisten sachen ja mit notifys auf
im Device Display_Wohnzimmer
defmod Display_Wohnzimmer MQTT2_DEVICE awtrix_TC001
habe ich unter setlist:
apptext1 awtrix_TC001/custom/$EVTPART1 {"icon": "$EVTPART2","text": [{"t": "$EVTPART5","c":"$EVTPART3"},{"t": "$EVTPART6 ","c": "$EVTPART4"}]}\
im notify rufe ich dann z.b.:
{fhem("set Display_Wohnzimmer apptext1 feuchte 39042 0000FF FFFFFF $EVTPART1 %")}
feuchte wird dann direkt als app so angelegt mit den werten befüllt:
awtrix_TC001/custom/feuchte {"icon": "39042","text": [{"t": "83","c":"0000FF",{"t": "%","c": "FFFFFF"}]}
Hallo zusammen,
habe nun auch meine AWTRIX Light nach o.g. Beispiel in Betrieb genommen. Klappt auch gut.
Meine Custom Apps schicke ich per set-Befehl an die Uhr. Nutze hier auch die offene Fenster-Anzeige und die Produktion des Balkonkraftwerkes.
set m2s publish awtrix_2c2b60/custom/Solar {"icon": "solaranimated", "text":"aktuell [ShellySolar:aktuelleLeistung] heute [Solar:ErtragTag]"}
set m2s publish awtrix_2c2b60/custom/SolarGesamt {"icon": "solaranimated", "text":"Gesamt [Solar:GesamterErtrag]"}
set m2s publish awtrix_2c2b60/custom/offeneFenster {"icon": "window", "text":"[di_uiTable_windows:windows]"}
solaranimated.gif
window.gif
Die Aktualisierung der Anzeige an der UHR mache ich derzeit mit dem at-Befehl, der alle X Minuten die App erneut per Set an die Uhr sendet.
Geht die Aktualisierung auch anders?
Weiterhin nutze ich die Anzeige, um mit Hilfe des Abfallkalenders anzeigen zu lassen, welche Tonne als nächstes abgeholt wird.
set m2s publish awtrix_2c2b60/custom/Müll {"icon": "tonne_bio", "text":"als nächstes [myABFALL:next_text] [myABFALL:next_weekday] in [myABFALL:next_days] Tag(en)"}
tonne_bio.gif
Der Abfallkalender gibt ja den Namen aus, welche Tonne als nächstes abgeholt wird. Wie kann ich in dem set-Befehl steuern, dass je nach Abfallart ein anderes icon genutzt wird?
Habe die durch mich benutzten Icons mal angehängt, falls jemand Bedarf hat...
Gruß
Marco
solaranimated.gifwindow.giftonne_bio.gif
Zitat von: marboj am 20 Februar 2024, 13:08:37Geht die Aktualisierung auch anders?
Hallo,
ja, wenn du noch kein MQTT2_DEVICE hast (hab den Thread nur überflogen, hab auch kein Ulanzi oder Awtrix-Device und mich nicht damit beschäftigt nachzuvollziehen warum du die Befehle bisher direkt am MQTT2-Server ausführst), erstell Dir eines, ergänze deine set-Befehle in der setList und setze das Attribut periodicCmd für deine setter.
periodicCmd <cmd1>:<period1> <cmd2>:<period2>...
periodically execute the get or set command. The command will not take any arguments, create a new command without argument, if necessary. period is measured in minutes, and it must be an integer.
Gruß
Thomas
Zitat von: marboj am 20 Februar 2024, 13:08:37Der Abfallkalender gibt ja den Namen aus, welche Tonne als nächstes abgeholt wird. Wie kann ich in dem set-Befehl steuern, dass je nach Abfallart ein anderes icon genutzt wird?
[url="https://forum.fhem.de/index.php?action=dlattach;attach=176400;type=preview;file"]solaranimated.gif[/url][url="https://forum.fhem.de/index.php?action=dlattach;attach=176401;type=preview;file"]window.gif[/url][url="https://forum.fhem.de/index.php?action=dlattach;attach=176402;type=preview;file"]tonne_bio.gif[/url]
wie wäre es wenn du die Icons auch auf dem awtrix Display entsprechend so benennst, und dein "icon": "tonne_bio" durch "icon": "[myABFALL:next_text]" ersetzt ?
Darf natürlich dann keine Leerzeichen enthalten.
Ansonsten notifys entsprechend füttern wenn aus deinem Abfallkalender täglich ein trigger kommt.
Hallo laserrichi,
vielen Dank für den Tipp. Manchmal ist es so einfach. Es funktioniert, wenn man als Icon-Name die Variable icon": "[myABFALL:next_text]" nimmt.
Du hast ja auch die Benachrichtigung für die offenen Fenster. Wie aktualisiert Du diese auf der Uhr?
Gruß
Marco
oben steht ja der notify dafür, der reagiert auf ein monitoring:
defmod Fenster_monitoring monitoring Fenster.*:(open|tilted) .*:closed
Beschäftige mich auch gerade mit der TC001. Hat jemand ein Mapping von Wetter-Icons (Proplanta oder Openweathermaps) auf Icons für die TC001? Also zB die Icons von LaMetric?
Also so in der Art: "04d" -> "234235".
Das Beste ist bisher hier in dem Code zu finden:
https://forum.iobroker.net/post/1062994
Hallo zusammen,
ich habe mich jetzt hier durchgebissen und bin auch schon relativ weit. Allerdings habe ich ein Problem, wenn Leerzeichen in dem übertragenen Text enthalten sind. Dann wird der Text direkt beim ersten Leerzeichen abgeschnitten.
Ziel ist es auf der awtrix den aktuellen Interpreten, Tracknamen und Künstler anzuzeigen. Ich mache alles über MTQQ.
Als Vorlage für die awtrix habe ich den ersten Post von @laserrichi verwendet.
Mein notify sieht so aus. Es soll also bei jedem Songwechsel alles an die awtrix übertragen werden.
defmod n_music_awtrix notify Sonos_Schlafzimmer:currentTitle.* {\
my $Album=ReadingsVal("Sonos_Schlafzimmer","currentAlbum","");;\
my $Titel=ReadingsVal("Sonos_Schlafzimmer","currentTitle","");;\
my $Artist=ReadingsVal("Sonos_Schlafzimmer","currentArtist","");;\
fhem("set awtrix_TC001 apptext1 musicnow music F0A0FF variable '$Titel'")}
attr n_music_awtrix room Automat
Ich sehe also das Icon gefolgt vom Titel der allerdings immer mit einem ' beginnt. Heisst der Track nun also "das ist der Track" bekomme ich angezeigt "ICON 'das"
Auch habe ich aus dem ersten Post Punkt 3 das versucht an meine Bedürfnisse anzupassen, komme aber mit der Syntax einfach nicht klar:
fhem(qq(set MQTT publish awtrix_TC001/custom/Fenster {"icon": "music","duration":"20","text": [{"t": "Lang Offen:","c":"FFFFFF"},{"t": "$a","c": "FFFF00"},{"t": " Kurz Offen:","c":"FFFFFF"},{"t": "$b","c": "FFFF00"}]}))}
attr notify_Display_OffeneFenster room Notify_DOIF
Ich habe keine Ahnung wie ich das ändern kann und komme nicht weiter. Hat jemand Erfahrung damit und kann mir einen Schubs in die richtige Richtung geben?
Vielen Dank und schönes Wochenende
wolf
ich löse selber auf, falls es jemand mal benötigt. Folgendes notify funktioniert:
Sonos_Schlafzimmer:currentTitle.* {
my $Album = ReadingsVal("Sonos_Schlafzimmer", "currentAlbum", "");
my $Titel = ReadingsVal("Sonos_Schlafzimmer", "currentTitle", "");
my $Artist = ReadingsVal("Sonos_Schlafzimmer", "currentArtist", "");
my $text = "Album: $Album, Titel: $Titel, Artist: $Artist";
my $json = qq({"icon": "music", "text": "$text"});
fhem("set mqttServer publish awtrix_TC001/custom/music $json");
}
das mit Leerzeichen hatte ich am anfang schon mal mit dem 3. Beispiel drin.
Das setzen mit mqtt direkt in einem rutsch ist ja die lösung. Hast es ja rausgefunden :-)
super, danke, dass Du so schnell reagiert hast :)
Jetzt habe ich nur das Problem, dass ich im Prinzip möchte, dass die Trackinfo für 20s angezeigt wird und dann zurück zur normalen Uhr wechselt. Ich bekomme es auch nicht hin, dass wenn die Uhrzeit angezeigt wird, die App zu meiner "music" wechselt, sondern ich muss die Tasten an der awtrix drücken um in die musicApp zu kommen. Wie habt ihr das gelöst?
Hallo zusammen,
ich glaube das ist eher eine Grundsatzfrage.
Ich versuche per MQTT2_DEVICE etwas zu publishen. Allerdings ist mir noch nicht ganz klar, wie ich in der SetList auf Readings zugreifen kann also z.B.
[Device:Reading]
oder {ReadingsVal(...
klappen irgendwie nicht.
Auch der Versuch auf die FHEM Variable für die aktuelle Uhrzeit zuzugreifen haut nicht hin $hms
Internals:
CID UlanziWohnzimmerRene
DEF UlanziWohnzimmerRene
FUUID 670276a3-f33f-db0c-0f19-98a7a3f7837789e5
IODev myBroker
LASTInputDev myBroker
MSGCNT 16132
NAME MQTT_UlanziWohnzimmerRene
NR 402
STATE notify
TYPE MQTT2_DEVICE
eventCount 16158
myBroker_CONN myBroker_192.168.1.40_52478
myBroker_MSGCNT 16132
myBroker_TIME 2024-10-29 09:04:01
READINGS:
2024-10-27 11:30:14 IODev myBroker
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_app App_Temperatur_Briefkasten
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_bat 100
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_bat_raw 682
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_bri 5
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_hum 36
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_indicator1 false
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_indicator2 false
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_indicator3 false
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_ip_address 192.168.1.40
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_ldr_raw 305
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_lux 1
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_matrix true
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_messages 35
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_ram 123260
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_temp 25
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_type 0
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_uid awtrix_c21ae8
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_uptime 2700
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_version 0.96
2024-10-29 09:04:01 MQTT_UlanziWohnzimmerRene_wifi_signal -67
2024-10-29 09:00:47 state notify
Attributes:
IODev myBroker
autocreate 0
devicetopic MQTT_UlanziWohnzimmerRene/stats
group Ulanzi
icon display_dot
readingList $DEVICETOPIC:.* { json2nameValue($EVENT, 'MQTT_UlanziWohnzimmerRene_', $JSONMAP) }
room Wohnzimmer
setList notify:noArg MQTT_UlanziWohnzimmerRene/notify {"text":"$hms", "duration":10}
on:noArg MQTT_UlanziWohnzimmerRene/power {"power": true}
off:noArg MQTT_UlanziWohnzimmerRene/power {"power": false}
brightness:colorpicker,BRI,0,1,255 MQTT_UlanziWohnzimmerRene/moodlight {"$EVTPART0":"$EVTPART1"}
$hms ist eine perl variable, wie man die im setlist einbauen muss weis ich leider nicht.
Hallo,
"hinten" muss man dazu auf die Perlebene wechseln:
notify:noArg {qq(MQTT_UlanziWohnzimmerRene/notify {"text":"$hms", "duration":10})}
Gruß Thomas
Hallo.
Zitat von: ReneR1986 am 29 Oktober 2024, 09:11:48...
Ich versuche per MQTT2_DEVICE etwas zu publishen. Allerdings ist mir noch nicht ganz klar, wie ich in der SetList auf Readings zugreifen kann also z.B.
[Device:Reading]
oder
{ReadingsVal(...
...
Für bspw. manuelle Eingaben genau nach diesem Schema. Nehmen wir an, Du hast Deiner setList beispielsweise so einen Eintrag spendiert:
text $DEVICETOPIC/notify {"$EVTPART0":"$EVTPART1"}
Dann kannst Du ins Eingabefeld zum set eingeben:
set MyAwtrix text [YourDevice:YourReading]
FHEM löst [YourDevice:YourReading] für uns auf, sodass wir das Ergebnis in $EVTPART1 verwenden können.
Soll es direkt in der setList verwendet werden, muss es, wie Thomas schon schreibt, via Perl erledigt werden:
showReading:noArg {"$DEVICETOPIC/notify ".'{"text":"'.ReadingsVal('YourDevice','YourReading','').'", "duration":10}' }
Ähnliches Beispiel, nur etwas anders umgesetzt (Verkettung d. Strings).
Vielleicht hilft das auch ein wenig weiter.
Viele Grüße
rob
PS: Es wird empfohlen das Attribut "devicetopic" in den setList/ getList/ readingList d. MQTT2_DEVICE's zu verwenden. In Deinem Fall sollte m.E. aber "MQTT_UlanziWohnzimmerRene" drin stehen, statt auf "MQTT_UlanziWohnzimmerRene/stats" fixiert zu sein. Die readingList dann entspr. um "/stats" ergänzen.
ZitatÄhnliches Beispiel, nur etwas anders umgesetzt (Verkettung d. Strings).
Gerade um das Verketten zu vermeiden bietet sich die von mir vorgeschlagene qq() Variante an.
Dazu muss man halt die Werte zuvor in Variablen schreiben, find ich aber übersichtlicher, vor allem wenn es mal mehr Variablen geben sollte die übergeben werden müssen.
showReading:noArg {my $v=ReadingsVal('YourDevice','YourReading',''); return qq($DEVICETOPIC/notify {"text":"$v", "duration":10}) }
Hab ich für mich bisher so mitgenommen, kann aber ja jeder machen wie er mag.
Super, vielen Dank euch!
Ich probiere beides aus. 8)
Hallo Thomas.
Zitat von: TomLee am 03 November 2024, 15:04:58...
Hab ich für mich bisher so mitgenommen, kann aber ja jeder machen wie er mag.
...
Ja korrekt, so hab ich es auch verstanden: qq() ist best practise.
Sollte von mir auch keine Besserwisserei sein. Ich wollte nur illustrieren, dass es um den String geht, der übergeben wird. Als "inline-Sub" hast Du ja sogar ein Beispiel eingefügt und für noch komplexere Dinge könnte man eine Sub in MyUtils definieren, die dann auch den richtigen String zurückgeben muss.
Ich wollte @ReneR1986 nicht gleich damit verschrecken ;)
VG
rob