Hallo,
ich möchte die Werte meiner Wetterstaion mit HTML auslesen und diese Werte in eine Variable schreiben.
Bin dabei wie hier beschrieben vorgegangen https://it-beratung-koch.de/kb/openhab-wetterstation-eurochron-efws2900-einbinden/ (https://it-beratung-koch.de/kb/openhab-wetterstation-eurochron-efws2900-einbinden/)
Der Aufruf im zum Apache Server auf dem RASPI mit dem Browser funktioniert, wie kommt nun der Rückgabewert in eine FHEM Variable?
http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert
Danke
Das könnte die Lösung sein:
HTTPMod (https://wiki.fhem.de/wiki/HTTPMOD)
Hallo,
das habe ich mir bereits angeschaut, komme aber nicht ganz klar wie ich die Parameter "xxx"
http://192.168.1.23/wetter/Index.php?read=1&value= "xxxx" &convert
verändern könnte um alles auf einmal abzurufen.
Hätte es in diese Richtung probiert, bekomme aber nur Fehler
define MyWetter HTTPMOD http://192.168.1.23/wetter 7000
attr MyWetter userattr reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Nam\
e reading04JSON reading04Name reading05JSON reading05Name requestHeader02 sid1Data sid1Header01 sid1Id\
JSON sid1IgnoreRedirects:0,1 sid1URL
ttr MyWetter reading01JSON rainin
attr MyWetter reading01Name RAININ
attr MyWetter reading02JSON dailyrainin
attr MyWetter reading02Name DAILYRAIN
attr MyWetter reading03JSON sonne_einstrahlung
attr MyWetter reading03Name SONNE_EINSTRAHLUNG
attr MyWetter reading04JSON ...
Wie funktioniert dann der Aufruf des php-Skripts noch /Index.php?read=1&value= "xxxx" &convert [code/]
Hallo Maxl,
ich kenne deine Wettergeschichte nicht, ich lese nur einen Dieselpreis aus:
defmod Ottersberg_Diesel HTTPMOD https://ich-tanke.de/tankstelle/475db87090299af8f78aefe1d0938a96/ 1800
attr Ottersberg_Diesel DbLogExclude LAST_REQUEST,MATCHED_READINGS,UNMATCHED_READINGS,state
attr Ottersberg_Diesel disable 0
attr Ottersberg_Diesel enableControlSet 1
attr Ottersberg_Diesel group Treibstoff
attr Ottersberg_Diesel model clever_tanken_single_station
attr Ottersberg_Diesel reading01Name Diesel
attr Ottersberg_Diesel reading01Regex <div class=\"preis\"><span class=\"zahl\">(\d.\d{2})<sup>9</sup>
attr Ottersberg_Diesel readingOExpr $val =~ s/<[\d\D]+>//;;;;$val =~ s/,/\./g;;;;$val;;;;
attr Ottersberg_Diesel room hidden
attr Ottersberg_Diesel showBody 0
attr Ottersberg_Diesel stateFormat Diesel €
attr Ottersberg_Diesel timeout 10
Vielleicht hilft es ja.
LG
ergerd
Hallo,
hätte es so versucht, leider finde ich aber kein Reading mit dem Wert.
define test2 HTTPMOD none 0
attr test2 get01Name Radiation
attr test2 getData {"get" :["934.4008.value"]}
attr test2 getHeader1 Content-Type: application/json
attr test2 getHeader2 Accept: */*
attr test2 getURL http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# BUSY 0
# DEF none 0
# FUUID 64d47960-f33f-7117-970b-f50c9617fe756843
# Interval 0
# MainURL
# ModuleVersion 4.1.15 - 17.12.2022
# NAME test2
# NOTIFYDEV global
# NR 78
# NTFY_ORDER 50-test2
# STATE ???
# TYPE HTTPMOD
# value
# HttpUtils:
# NAME
# addr http://192.168.1.23:80
# auth 0
# buf
# code 200
# compress 1
# conn
# data {"get" :["934.4008.value"]}
# displayurl http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# header Content-Type: application/json
#Accept: */*
# host 192.168.1.23
# httpheader HTTP/1.1 200 OK
#Date: Thu, 10 Aug 2023 06:20:45 GMT
#Server: Apache/2.4.56 (Raspbian)
#Content-Length: 5
#Connection: close
#Content-Type: text/html; charset=UTF-8
# httpversion 1.0
# hu_blocking 0
# hu_filecount 1
# hu_port 80
# hu_portSfx
# ignoreredirects 1
# loglevel 4
# path /wetter/Index.php?read=1&value=solarradiation&convert
# protocol http
# redirects 0
# timeout 2
# url http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# sslargs:
# QUEUE:
# READINGS:
# REQUEST:
# context get
# data {"get" :["934.4008.value"]}
# header Content-Type: application/json
#Accept: */*
# ignoreredirects 0
# num 01
# retryCount 0
# type get01
# url http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# value
#
Sicher ist die Gesamtheit mit HTTPMOD interessant, aber um die erste Frage zu beantworten, eine einfache Möglichkeit für einen Wert:
setreading Dummy1 monthlyrain {(qx(wget -qO - http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert))}
Für einen Sack voll Werte ist das nicht die sinnvolle Lösung, zumal jeder Aufruf blockiert!
Es ist auch die Frage ob die Daten sinnvoller als in einzelnen konvertierten Werten zurück geliefert werden können, z.B. alles in einem json. Damit könnte man auch relativ leicht umgehen.
Die Google Suche spuckt auch noch das hier aus: https://forum.fhem.de/index.php?topic=87769.0
Wenn doch die Daten eh in json vorliegen, worauf das hier
# data {"get" :["934.4008.value"]}
# displayurl http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# header Content-Type: application/json
Hindeutet, würde ich einfach JsonMod anstatt HTTPMOD verwenden, die readinglist auf complete() setzen und schauen, was dann ankommt.
Das sind zwei Zeilen (ein define und ein attr), das ist doch nicht so kompliziert
Hallo,
hatte wieder etwas Zeit, als was soll ich dann "Dummy1" definieren die Zeile setreading Dummy1 monthlyrain {(qx(wget -qO - http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert))}
verlangt danach. Mit define Dummy1 HTTPMOD http://192.168.1.23/wetter 60
wird die obere Zeile nicht in das config File mit übernommen.
setreading Zeilen gehören auch nie nie niemals ins config file.
Hallo,
dann verstehe ich nicht was mir OTTO123 damit sagen will
setreading Dummy1 monthlyrain {(qx(wget -qO - http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert))}
Wie bekomme ich dann den Rückgabewert in eine Variable, wie folgt funktioniert nicht?
define WETTERSTATION HTTPMOD http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert 20
attr WETTERSTATION reading1Format %.1f
attr WETTERSTATION reading1Expr $val * 1
attr WETTERSTATION reading1Name solarradiation
# BUSY 0
# DEF http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert 20
# FUUID 64ece460-f33f-7117-8f7a-6c3082fa34ce0e58
# Interval 20
# MainURL http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# ModuleVersion 4.1.15 - 17.12.2022
# NAME WETTERSTATION
# NOTIFYDEV global
# NR 64
# NTFY_ORDER 50-WETTERSTATION
# STATE ???
# TYPE HTTPMOD
# value
# HttpUtils:
# NAME
# addr http://192.168.1.23:80
# auth 0
# buf
# code 200
# compress 1
# conn
# data
# displayurl http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# header
# host 192.168.1.23
# httpheader HTTP/1.1 200 OK
#Date: Mon, 28 Aug 2023 18:21:25 GMT
#Server: Apache/2.4.56 (Raspbian)
#Content-Length: 4
#Connection: close
#Content-Type: text/html; charset=UTF-8
# httpversion 1.0
# hu_blocking 0
# hu_filecount 1
# hu_port 80
# hu_portSfx
# ignoreredirects 1
# loglevel 4
# path /wetter/Index.php?read=1&value=solarradiation&convert
# protocol http
# redirects 0
# timeout 2
# url http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
# sslargs:
# QUEUE:
# READINGS:
# REQUEST:
# context reading
# data
# header
# ignoreredirects 0
# num unknown
# retryCount 0
# type update
# url http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert
wo finde ich eigentlich den Rückgabewert im LogFile
Host: 192.168.1.61:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
2023.08.28 19:56:18.853 4: WEB_192.168.1.61_54616 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-08.log; BUFLEN:0
2023.08.28 19:56:20.160 5: GET /fhem/FileLog_logWrapper?XHR=1&inform=type%3Dstatus%3Bfilter%3D%3Bsince%3D1693245377.85591%3Bfmt%3DJSON&fw_id=75×tamp=1693245380125 HTTP/1.1
Host: 192.168.1.61:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.1.61:8083/fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-08.log
2023.08.28 19:56:20.161 4: WEB_192.168.1.61_54616 GET /fhem/FileLog_logWrapper?XHR=1&inform=type%3Dstatus%3Bfilter%3D%3Bsince%3D1693245377.85591%3Bfmt%3DJSON&fw_id=75×tamp=1693245380125; BUFLEN:0
2023.08.28 19:56:20.825 4: WETTERSTATION: GetUpdate called (update)
2023.08.28 19:56:20.825 4: WETTERSTATION: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 20.0 sec at 19:56:40.825, interval 20
2023.08.28 19:56:20.825 5: WETTERSTATION: AddToQueue adds type update to URL http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert, no data, no headers, retry 0, initial queue len: 0
2023.08.28 19:56:20.826 5: WETTERSTATION: HandleSendQueue called from AddToSendQueue, qlen = 1
2023.08.28 19:56:20.826 4: WETTERSTATION: HandleSendQueue sends update with timeout 2 to http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert, No Data, No Header
2023.08.28 19:56:20.827 5: HttpUtils url=http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert NonBlocking via http
2023.08.28 19:56:20.827 4: IP: 192.168.1.23 -> 192.168.1.23
2023.08.28 19:56:20.829 5: HttpUtils request header:
GET /wetter/Index.php?read=1&value=solarradiation&convert HTTP/1.0
Host: 192.168.1.23
User-Agent: fhem
Accept-Encoding: gzip,deflate
2023.08.28 19:56:20.836 4: http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert: HTTP response code 200
2023.08.28 19:56:20.836 5: HttpUtils http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert: Got data, length: 4
2023.08.28 19:56:20.836 5: HttpUtils response header:
HTTP/1.1 200 OK
Date: Mon, 28 Aug 2023 17:56:35 GMT
Server: Apache/2.4.56 (Raspbian)
Content-Length: 4
Connection: close
Zitat von: Maxl am 09 August 2023, 19:00:28ich möchte die Werte meiner Wetterstaion mit HTML auslesen und diese Werte in eine Variable schreiben.
z.B: alle 27 min einen Wert in einen Dummy schreiben.
define Dummy2 dummy
define a4 at +*00:27:00 setreading Dummy2 monthlyrain {(qx(wget -qO - http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert))}
Und warum immer wieder über den Umweg eines Systemaufrufs anstatt mit FHEM Bordmitteln aus den HTTPutils?
Hallo,
die Perl Kenntnisse sind halt aktuell noch sehr begrenzt :-(
Irgendetwas tut sich, aber der Reading Wert wird mir nicht angezeigt, ich hätte es mit STATEFORMAT oder NOTIFY versucht, aber es tut sich nichts am Wert.
define Dummy2 dummy
attr Dummy2 stateFormat V: monthlyrain mm
define a4 at +*00:00:20 setreading Dummy2 monthlyrain {(qx(wget -qO - http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert))}
define notify_monthlyrain notify Dummy2:monthlyrain.* set Dummy2 $EVTPART1
Das notify ist doch eigentlich Unfug.
Wo willst Du denn den Wert nun haben?
In einem bestimmten reading ("monthlyrain") oder im reading "state"
define dummy2 dummy
define a4 at +*00:00:20 {fhem("setreading dummy2 monthlyrain ".GetFileFromURL("http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert"))}
Damit sollte zumindest das reading "monthlyrain" befüllt werden.
attr dummy2 stateFormat V: monthlyrain mm
sorgt dann dafür, dass der Wert auch in der Übersicht (im internal STATE) auftaucht.
Wobei ich die Abfrage eines Montaswertes alle 20 Sekunden für ziemlich sinnfrei halte.
Aber das ist ein anderes Thema.
Hallo,
hoffe richtig abgeändert, zumindest steht der Wert endlich in der Variable, danke.
define Dummy2 dummy
attr Dummy2 stateFormat V: monthlyrain mm
define a4 at +*00:00:20 {fhem("setreading Dummy2 monthlyrain ".GetFileFromURL("http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert"))}
Aber was ist der Unterschied von dem DEFINE von Otto123, warum funktioniert dies nicht?
Zitatdefine a4 at +*00:00:20 setreading Dummy2 monthlyrain {(qx(wget -qO - http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert))}
Zitat von: betateilchen am 28 August 2023, 23:09:23Und warum immer wieder über den Umweg eines Systemaufrufs anstatt mit FHEM Bordmitteln aus den HTTPutils?
Ich gelobe Besserung - wollte aber meinen ersten Vorschlag nicht revidieren :)
Zitat von: betateilchen am 29 August 2023, 12:12:08Das notify ist doch eigentlich Unfug.
und warum diese Einschränkung - ist doch Unfug ;)
Zitat von: Maxl am 29 August 2023, 12:27:47Aber was ist der Unterschied
Mein Vorschlag verwendet set magic (mögen nicht alle) https://fhem.de/commandref_modular_DE.html#set und einen Systembefehl
betateilchens Vorschlag verwendet komplett Perl und eine FHEM Funktion.
Zitat von: Maxl am 29 August 2023, 12:27:47warum funktioniert dies nicht?
Falls wget bei Dir nicht funktioniert sollte sich ev. was im FHEM Log finden. Ich vermute in dem Fall hätte man die URL noch in ' ' oder " " setzen müssen. Ein getesteter ähnlicher Aufruf funktioniert so bei mir
{qx(wget -qO - http://v4.ident.me)}
interessanterweise aber nicht mit
{GetFileFromURL('http://v4.ident.me')}
vielleicht ist das der Grund warum ich schneller mal wget nehme :)
Häng mal noch ein / an
{GetFileFromURL('http://v4.ident.me/')}
Hi,
ich hätte es hin und her probiert, will bei mir nicht mit WGET, mit oder auch ohne ' " der URL.
Sobald ich die URL mit wget mit einen ' oder " ergänze erscheint die URL als Variable.
define a3 at +*00:00:25 setreading Dummy1 solarradiation {(qx(wget -qO -http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert))}
define a3 at +*00:00:25 {fhem("setreading Dummy1 solarradiation ".GetFileFromURL("http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert"))}
einen Unterschied im LOG File erkenn ich nicht
Date: Tue, 29 Aug 2023 12:42:07 GMT
Server: Apache/2.4.56 (Raspbian)
Content-Length: 5
Connection: close
Content-Type: text/html; charset=UTF-8
2023.08.29 14:42:07.432 5: Cmd: >setreading Dummy2 monthlyrain 6.150<
2023.08.29 14:42:07.433 3: setreading Dummy2 monthlyrain 6.150 : Please define Dummy2 first
2023.08.29 14:42:07.433 3: a4: Please define Dummy2 first
2023.08.29 14:42:07.433 5: redefine at command a4 as +*00:00:20 {fhem("setreading Dummy2 monthlyrain ".GetFileFromURL("http://192.168.1.23/wetter/Index.php?read=1&value=monthlyrainin&convert"))}
2023.08.29 14:42:07.434 5: Starting notify loop for a4, 1 event(s), first is Next: 14:42:27
2023.08.29 14:42:07.434 5: createNotifyHash
2023.08.29 14:42:07.434 5: End notify loop for a4
2023.08.29 14:42:07.897 4: Connection closed for WEB_192.168.1.61_51864: EOF
2023.08.29 14:42:07.917 4: Connection accepted from WEB_192.168.1.61_51866
2023.08.29 14:42:07.917 5: GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-08.log HTTP/1.1
Host: 192.168.1.61:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.1.61:8083/fhem?room=Wetter
Upgrade-Insecure-Requests: 1
2023.08.29 14:42:07.918 4: WEB_192.168.1.61_51866 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-08.log; BUFLEN:0
2023.08.29 14:42:08.227 5: GET /fhem/FileLog_logWrapper?XHR=1&inform=type%3Dstatus%3Bfilter%3D%3Bsince%3D1693312926.92051%3Bfmt%3DJSON&fw_id=76×tamp=1693312928228 HTTP/1.1
Host: 192.168.1.61:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.1.61:8083/fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-08.log
2023.08.29 14:42:08.228 4: WEB_192.168.1.61_51866 GET /fhem/FileLog_logWrapper?XHR=1&inform=type%3Dstatus%3Bfilter%3D%3Bsince%3D1693312926.92051%3Bfmt%3DJSON&fw_id=76×tamp=1693312928228; BUFLEN:0
2023.08.29 14:42:17.450 5: exec at command a3
2023.08.29 14:42:17.451 5: Cmd: >setreading Dummy1 solarradiation {(qx(wget -qO -http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert))}<
2023.08.29 14:42:17.451 3: a3: Please define Dummy1 first
2023.08.29 14:42:17.452 5: redefine at command a3 as +*00:00:25 setreading Dummy1 solarradiation {(qx(wget -qO -http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert))}
2023.08.29 14:42:17.452 5: Starting notify loop for a3, 1 event(s), first is Next: 14:42:42
2023.08.29 14:42:17.452 5: createNotifyHash
2023.08.29 14:42:17.453 5: End notify loop for a3
2023.08.29 14:42:24.375 4: Connection closed for WEB_192.168.1.61_51866: EOF
2023.08.29 14:42:24.426 4: Connection accepted from WEB_192.168.1.61_51868
2023.08.29 14:42:24.426 5: GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-08.log HTTP/1.1
Host: 192.168.1.61:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
2023.08.29 14:42:24.427 4: WEB_192.168.1.61_51868 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-08.log; BUFLEN:0
Zitat von: Otto123 am 29 August 2023, 13:05:35Ein getesteter ähnlicher Aufruf funktioniert so bei mir
{qx(wget -qO - http://v4.ident.me)}
interessanterweise aber nicht mit {GetFileFromURL('http://v4.ident.me')}
vielleicht ist das der Grund warum ich schneller mal wget nehme :)
Mach es halt richtig, dann funktioniert es auch.
"Eine URL besteht in der einfachsten Beschreibung aus drei Teilen: Protokoll (https://, ftp://), Domain- oder Server-Name (www.domain.de) und Dateipfad (/verzeichnis/datei. html). Der Dateipfad kann aus mehreren Verzeichnisebenen bestehen."
Du hast den dritten Teil (Dateipfad) weggelassen. Im einfachsten Fall reicht als Pfadangabe das root-Verzeichnis des Webserver (/), so wie von TomLee ja schon vorgeschlagen.
Zitat von: Maxl am 29 August 2023, 14:45:43erscheint die URL als Variable.
???
Du hast Erscheinungen?
Oh, kniet mit mir, dies seltne Glück zu preisen!
@betateilchen Danke für die Aufklärung mit dem Pfad :)
Zitat von: Maxl am 29 August 2023, 14:45:432023.08.29 14:42:17.451 3: a3: Please define Dummy1 first
Aber das Problem ist doch ein ganz anderes ? ::)
Zitat{(qx(wget -qO -http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert))}
und so wird das nix! Da fehlt mindestens ein Leerzeichen zwischen - und http
Das -O steht für Output und das - für Stdout.
So meinte ich es mit ' '
{(qx(wget -qO - 'http://192.168.1.23/wetter/Index.php?read=1&value=solarradiation&convert'))}
Hallo Otto,
Zitatund so wird das nix! Da fehlt mindestens ein Leerzeichen zwischen - und http
Das -O steht für Output und das - für Stdout.
habe es mit und ohne Leerzeichen, Anführungsstriche,.. probiert, es will bei mir einfach nicht :-(
Wenn Zeit ist probiere ich weiter, fürs erste reicht ja die andere Lösung.
ZitatOh, kniet mit mir, dies seltne Glück zu preisen!
Wusste gar nicht das Betateilchen so religiös ist.
Danke