NEWS
[Gelöst] Werte von Clever Tanken
-
@mickym So?
$.topic#$i{$$.topic[$i]:$$.payload[$i]}
Ja, sollte vlt. ein eigener Thread werden
Gruß
Reiner -
@rewenode sagte in Werte auslesen von Webseite:
$.topic#$i{$$.topic[$i]:$$.payload[$i]}
Ja - das geht auch.
- Meins ist umständlicher.
Ist abgespeichert.
-
@mickym Oder auch so, um mal mit $zip zu spielen
$zip($.topic,$.payload){$[0]:$[1]}
#$i brauchts da natürlich nicht.
In JSONata gibt es da immer 1000...Gruß
Reiner -
@rewenode sagte in Werte auslesen von Webseite:
$zip($.topic,$.payload){$[0]:$[1]}
Ich muss immer erst 2mal überlegen - OK die Zip Funktion ist ja beschrieben - aber ich bin wieder über das reduce in dem Objekt gestolpert. Das man mit 0 und 1 ja jedes Array-Element
durchiteriert wird - Aber auch sehr elegant.
-
@mickym zurück zum eigentlichen Thema. Einen hätte ich noch
Mit einem besseren Selektor wird es dann nur ein ganz kurzer Einzeiler.price-type-name, [id|=current-price]
Und im Change dann:
payload#$i[($i%2)=0]{$$.payload[$i]:$$.payload[$i+1].$number()}
Gruß
Reiner -
@rewenode sagte in Werte auslesen von Webseite:
Das mit dem JSONATA ist ja nun nach den vorherigen Ausführungen zu erklären
- aber mit den CSS Selektoren bist Du mir im Vorteil - auch wenn es in der Hilfe zur HTML Node verlinkt ist: https://github.com/fb55/css-select#user-content-supported-selectors
Aber ich bevorzuge dann die andere Schreibweise mit [class="price-type-name"] und dann die Vergleiche zu machen. Das mit dem vorangestellten Punkt einer Klasse entspricht - ist mir bei CSS zwar prinzipiell bekannt, aber hätte ich hier nie verwendet.
Ok - ich merke - ich beginne das mit den CSS Selektoren erst langsam zu verstehen. Dann geht das was @merlin2k11 gesagt hat, dass es nicht exakt übereinstimmen muss.
- Klasse.
Dann gehen aber noch ein paar mehr Selektoren:
Ich hab heute jedenfalls wieder einiges von Dir gelernt.
Vielen Dank!
EDIT:
Noch eine Info - wenn man eine Standalone Version von NodeRed nutzt, kann man auch den doppelten Kontextspeicher verwenden, dann muss man für solche Tests keine Webanfragen machen.
-
@mickym sagte in Werte auslesen von Webseite:
Noch eine Info - wenn man eine Standalone Version von NodeRed nutzt, kann man auch den doppelten Kontextspeicher verwenden, dann muss man für solche Tests keine Webanfragen machen.
wieder was gelernt
-
@rewenode Ich mach mal noch einen neuen Thread auf - weil ich immer wieder auf Verständnisprobleme stoße.
Aus einem anderen Thread - gabs auch eine Anforderung - ich habs zwar geschafft, fand das aber wieder umständlich. Um den Thread nicht vollständig hier zu kapern, habe ich mal einen eigenen aufgemacht: https://forum.iobroker.net/topic/57856/jsonata-verständnisprobleme
-
ähm ... topic#$i@$t.payload#$j@$p[$i=$j]{$t:$p}
Ihr müsst doch was geraucht haben... was auch immer es war ich will es auch damit ich verstehe was ihr da gebaut habt. Wie war das? Das ist Magisch?Ich habe auch nach dem dritten mal lesen nur Fragezeichen und keine Ahnung was ihr da gebaut habt - aber es klappt und das war ja mein Ziel
Ich danke euch
-