Ich hab hier ein Programm, welches ich per URL auslesen kann...
Als Ergebniss bekomme ich entweder eine JSON.List oder eine XML.List - entweder groß, mit vielen Informationen, oder klein mit wenig Informationen....
Ich würde gerne die Infos auslesen...
Jetzt suche ich ein vorhandenes Modul, welches ich als Vorlage nutzen kann, um mein Modul auf zu bauen...
Welches - möglichst einfache - Modul könnte ich als Vorlage nehmen???
Danke Blacky
::EDIT::
Falls die Anfrage hier falsch ist, bitte eine kurze PM an mich und verschieben... danke..
schau dir mal HTTPMOD an. damit geht out of the box schon einiges.
ansonsten gibt es in diesem thread ein beispiel für etwas ähnliches: http://forum.fhem.de/index.php/topic,38463.msg306731.html#msg306731 (http://forum.fhem.de/index.php/topic,38463.msg306731.html#msg306731).
gruss
andre
Oha - doch schwieriger als wie ich dachte... ... ...
Danke trotzdem...
Ich melde mich dann in 15 Jahren wieder, wenn ich vollkommen verrückt geworden bin...
wie gesagt: schau dir HTTPMOD an. damit kannst du werte per http abfragen und in ein readings stecken.
gruss
andre
Jup - hab ich gerade getan...
sieht bei mir gerade so aus:
define testseite HTTPMOD http://192.168.178.20:8090/api?mode=queue&start=START&limit=LIMIT&output=xml&apikey=08154711 60
attr testseite readingsName_speed speed
attr testseite userReadings readingsName_speed
attr testseite readingsRegex_speed <speed>([\d\.]+)
attr testseite readingsName_sizeleft sizeleft
attr testseite userReadings readingsName_sizeleft
attr testseite readingsRegex_sizeleft <sizeleft>([\d\.]+)
jetzt hab ich nur das Problem, das "speed" sowohl <4.1 M> als auch <7 K> sein kann...
wie kann ich das auf einen Nenner bringen - also NUR K oder nur M - ergo einen Faktor 1024 mit einbringen??? (K wär mir am liebsten)
kann es sein das du die alte methode verwendest?
aktuell geht es glaube ich eigentlich so:attr testseite reading01Name speed_orig
attr testseite reading01Regex <speed>([\d\.]+)
attr testseite reading02Name sizeleft_orig
attr testseite reading02Regex <sizeleft>([\d\.]+)
zwei mal userReadings geht nicht (beide müssen auf ein mal gesetzt werden) und in deinem fall macht es auch garnichts da der ausdruck zum berechnen fehlt.
um die werte umzurechnen gibt es dann readingXXExpr.
gruss
andre
Also - irgendwie scheint es trotzdem zu gehen...
hab jetzt auch ein eading gefunden, da ist schon umgerechnet in kbpersec...
das ist im Moment eh nur ein Test....
ich hab gerade gesehen, das es zwar grundsätzlich geht, aber immer noch ein Problem hat...
ich hab in der XML-Datei eine Struktur: (unnötiges gelöscht)
<queue>
<slots>
<slot>
<mbleft>zahl</mbleft>
</slot>
<slot>
<mbleft>zahl</mbleft>
</slot>
<slot>
<mbleft>zahl</mbleft>
</slot>
</slots>
<mbleft>__meine_gewünschte_Zahl__</mbleft>
</queue>
mein:
attr testseite readingsRegex_mbleft <mbleft>([\d\.]+)
bringt mir aber immer nur die erste Zahl bei mbleft... und nicht die letzte Zahl...
die Anzahl der Slots ist leider nicht bekannt - es kann 0 sein, aber es kann auch mehrere Hundert sein...
Wie bekomme ich jetzt die unterste, gewünschte Zahl heraus???
Danke für Eure Hilfe
Gruss Blacky
in dem du mehr kontext mit angibst.
etwas in der art:attr testseite readingsRegex_mbleft <mbleft>([\d\.]+)</mbleft>.</queue>
gruss
andre
ok... eingetragen...
Versuch 1:
attr testseite readingsRegex_mbleft <mbleft>([\d\.]+)</mbleft>.<diskspace2>
Versuch 2:
attr testseite readingsRegex_mbleft <mbleft>([\d\.]+)</mbleft>.*<diskspace2>
die XML-Datei wäre in dem Bereich:
<mbleft>521612.24</mbleft> <diskspace2>172.15</diskspace2>
jetzt aktuallisiert wer aber gar nicht mehr diese Zahl...
du musst die \ noch maskieren. also z.b. so:attr testseite readingsRegex_mbleft <mbleft>([\d\.]+)<\/mbleft>.<diskspace2>
oder du nimmst an dieser stelle auch einen .
gruss
andre
habs jetzt so:
attr testseite readingsRegex_mbleft cache_size>.<mbleft>([\d\.]+)<\/mbleft>.<diskspace2
aber er aktualisiert immer noch nicht...
die Datei sieht da so aus:
<cache_size>0 B</cache_size> <mbleft>521612.24</mbleft> <diskspace2>172.15</diskspace2>
schau in den internals nach was tatsächlich an xml in fhem da ist.
gruss
andre
da hab ich das Beispiel ja rauskopiert... grins
<cache_size>0 B</cache_size> <mbleft>521612.24</mbleft> <diskspace2>172.15</diskspace2>
<cache_size>0 B</cache_size><mbleft>521612.24</mbleft><diskspace2>172.15</diskspace2>
<cat>*</cat><mbleft>384637.07</mbleft><timeleft>16873:14:16</timeleft>
und selbst ohne die Leerzeichen/. gehts nicht
und es kann nicht dran liegen, das die nicht gewünschten Zahlen genauso aufgebaut sind
hab herausgefunden, das es noch eine Art History gibt, in der meine gewünschten Werte alle drin sind...
jetzt hab ich aber das Problem, das in den
<day_size>56.5 G</day_size>
entweder 350 M oder 700 M oder 35 G drin steht...
im Reading steht dann 350, 700 oder 35
in einem Plot sieht das dann natürlich doof aus, wenn ich da bei 700 nen grossen Ausschlag hab, und bei 35 nen kleinen, obwohl das eine MegaByte sind, und das andere GigaByte...
wie kann ich das im Reading kompensieren... (mehr als 1.5 T dürfte da selten drin stehen...)
attr testseite_history readingsRegex_daysize <day_size>([\d\.]+)
wie oben schon vorgeschlagen:
Zitatum die werte umzurechnen gibt es dann readingXXExpr.
du musst aber die einheit mit auslesen. und dann entsprechend umrechnen.
gruss
andre