NEWS
Liquid Check json auslesen mit Blockly: request deprecated
-
Hallo zusammen !
Als Anfänger habe ich versucht mit blockly Daten aus einer web-json auszulesen. Es handelt sich dabei um eine pneumatische Füllstandsanzeige für eine Zisterne von si-elektronik Liquid Check.
Das blockly klappt soweit, jedoch habe ich Sorge weil im github steht, dass "request" deprecated sei.Kann ich das blockly so lassen, oder geht das beim nächsten iobroker Update kaputt ?
Oder gibt es eine andere einfache blockly Möglichkeit die Daten auszulesen ohne einen eigenen Adapter zu bemühen ?Besten Dank und Gruß,
Sebastian
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="e48tYq}a^towv8Y7jiIx">result</variable> </variables> <block type="schedule" id="kFcsR[Q,UJ+uK;YU^@J!" x="37" y="63"> <field name="SCHEDULE">*/30 * * * *</field> <statement name="STATEMENT"> <block type="request" id="1r*t9m?Bq{8up?5zPN#Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="dU;!(6*SSqT4s[$/.SQx"> <field name="TEXT">http://10.11.12.46/infos.json</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id=",63ffm5|Z|JNLxoy:gXj"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Zisterne_liter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="7ph[9]v-P.iKe(@K1UvD"> <value name="PATH"> <shadow type="text" id="~)(o/?x0kJ7#=ZSq4]#k"> <field name="TEXT">payload.measure.content</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="vyp7sOHk~HFsqzmM)!9f"> <field name="VAR" id="e48tYq}a^towv8Y7jiIx">result</field> </block> </value> </block> </value> <next> <block type="update" id="uoEUUPwavw#ph5B?F]vC"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Zisterne_hoehe</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="CEt*=c@rFwA2Qr37iqTN"> <value name="PATH"> <shadow type="text" id="Dy}8g+m1v/*{OY8}LYUN"> <field name="TEXT">payload.measure.level</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="/(^vfl)o)1SU+WFMIi:!"> <field name="VAR" id="e48tYq}a^towv8Y7jiIx">result</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
Zur Doku:
Inzwischen lese ich die JSON-Daten mit dem Parser-Adapter aus, weil beim Auslesen per Script immer wieder Fehlermeldungen auftraten:
Der Regex für Tankvolumen ist z.B.:
?<="content":)[\s\S]*?(?=})
-
@qwertz sagte in Liquid Check json auslesen mit Blockly: request deprecated:
jedoch habe ich Sorge weil im github steht, dass "request" deprecated sei.
kannste so lassen, request funktioniert ist nur n altes Modul wen das ersetzt wird sollte der block übernommen werden
-
Hallo zusammen,
ich habe mir auch einen Liquid Check angeschafft, um die Sensorik aus dem Tank in den Anschlussraum zu verlagern.
Leider bekomme ich die Werte noch nicht in den iobroker.
Könntet ihr mir bitte genau sagen, wie ihr das umgesetzt habt?
Bei mir klappt es weder mit dem Script noch mit dem Parser-Adapter (welche Einstellungen müssen hier genau vorgenommen werden?)
Über eure Hilfe würde ich mich sehr freuen!!
Gruß
Matthias -
Kurze Ergänzung:
Der Parser-Adapter liefert mir folgende Fehlermeldung im LogInvalid regular expression: /?<="content":)[\s\S]*?(?=})/: Nothing to repeat
Außerdem wird der Adapter angehalten, weil er zu oft abstürzt...
-
regEx: (?<="content":)[\s\S]*?(?=})
-
Vielen Dank, hat geklappt
-
Kannst du mir zufällig auch sagen, wie du die manuelle Messung anstößt?
-
@matthias-i
Mit Script:
https://forum.iobroker.net/post/667438 -
@qwertz hi, seit dem firmware-update funktioniert der regex nicht mehr...
das json sieht jetzt so aus (enthält jetzt 2x "content" - vll. liegt es daran?) :header namespace "Device" name "Response" messageId "E9BBCD95-7CB445A0" payloadVersion "1" authorization "4417936C5638-000378FA" payload measure level 0.81 content 3093 raw level 0.8058 content 3074.8523 age 4368 expansion boardType -1 ...
kannst du vll. helfen?
danke -
Ich schau nachher mal nach.
Welche Firmware Version hast du aktuell laufen beim liquid check ? Und welche Version hat dein Adapter PARSER ?
-
-
@gyle
Habe die gleichen Versionsstand. Klappt. Keine Fehlermeldung.
Konfig:
(?<="content":)[\s\S]*?(?=})