NEWS
Neuer Adapter 'systeminfo' auf Git und npm
-
@wendy2702 sagte in Neuer Adapter 'systeminfo' auf Git und npm:
@frankjoke Hallo Frank,
kannst du mir als Javascript DAU sagen was das jetzt bedeutet? Hast du das über Filter in dem Adapter gelöst oder ein extra JS Script angelegt?
Nein, ich hab nur in der Konfig Zeilen eingefügt, z.B für percent:
{ "name": "TestJson.percent", "type": "file", "source": "/home/pi/jsontest.json", "regexp": "..percent", "conv": "json", "role": "number|%", "write": "", "sched": "*:/1", }
D.H einen Eintrag erzeugt und dortz unter Name: TestJson.percent
unter Type: 'file' selektiert,
unter Source: /home/pi/jsontest.json
unter regexp: ..percent
unter conv: json
.....
Bei dir muss natürlich unter type und source was anderes stehen da du die Daten ja nicht aus meiner Datei lädst!DFas schaut dann so aus: (ganz unten)
p.s.: das
..percent
bedeutet dass er irgendwo im JSON den Namenpercent
suchen soll und den Wert ausgeben soll. Sind mehrerepercents
drinnen dann würde er ein Array aus allen erzeugen! -
Hallo Frank,
Danke das hat mir sehr geholfen.
Habe es jetzt so umgesetzt:
Und erhalte dadurch diese Datenpunkte:
Hast du zufällig noch einen Tipp wie ich den Filter erweitern kann damit er mir die "[]" bei Temp_OG_cores" nicht mehr anzeigt?
Danke und Gruß
Mirko
-
Hallo Frank,
hattest mir im Radar Thema geantwortet. :
@wendy2702 sagte in Neuer Adapter 'systeminfo' auf Git und npm: Hallo Frank, Danke das hat mir sehr geholfen. Habe es jetzt so umgesetzt: caf59f3f-096a-4c49-8d7e-c510b650b778-image.png Hast du zufällig noch einen Tipp wie ich den Filter erweitern kann damit er mir die "[]" bei Temp_OG_cores" nicht mehr anzeigt? Mirko, das cores schein ein Array zu sein in den Daten, versuch mal im Filter main,max,cores[0], sonst musst für die cores eben einen eigenen anlegen...
Das hat funktioniert.
Danke
-
@wendy2702 sagte in Neuer Adapter 'systeminfo' auf Git und npm:
Hallo Frank,
Danke das hat mir sehr geholfen.
Habe es jetzt so umgesetzt:
Hast du zufällig noch einen Tipp wie ich den Filter erweitern kann damit er mir die "[]" bei Temp_OG_cores" nicht mehr anzeigt?
Mirko, das cores schein ein Array zu sein in den Daten, versuch mal im Filter
main,max,cores[0]
, sonst musst für die cores eben einen eigenen anlegen... -
Kann mir jemand auf die sprünge helfen? ich versuche exec antwort auf 3 variable zu teilen
exec komande ist : ibrew status 192.168.2.100
Antwort:
Starting please wait...
ready on base: temperature 32 ºC, watersensor 2144Benötigt:
Satus - ready on base
temperature - 32 ºC
watersensor - 2144Bekomme einfach nicht gebaken..
-
@Alex1808
Hast schon so eine regexp probiert, sie gibt 3 Werte zurück:/^(.+)\:.*ure (\d+) .*sor (\d+)/m
Der erste ist der Text vom Zeilenanfang bis zum ':', dann die Temperatur und dann der sensor. Diese kannst 3 Vasriablen mittelsibrew_[status,temperatur,watersensor]
im Namen zuweisenViel Glück!
-
Hallo,
ich habe es jetzt für den Tankerkönig hinbekommen, mehrere Spritsorten zu ziehen:
Sieht dann so aus:
Gruß
Egbert -
@frankjoke
Super, hat funktioniert!
Danke!Habe mittlereweile bereits mit Blockly gelöst.
-
@opossum Interessant jemand aus meiner Gegend hier zu sehen
-
@intruder7 sagte in Neuer Adapter 'systeminfo' auf Git und npm:
@opossum Interessant jemand aus meiner Gegend hier zu sehen
Hallo,
bin östlich von Rostock zu hause. In der Nähe von Rövershagen.Gruß
Egbert -
@opossum Ich auch. Sanitz
-
-
Ich verwende den Adapter um json zu parsen. Das funktioniert super, vielen Dank für den tollen Adapter.
{ "name": "Therme.[name/value]", "type": "web", "source": "http://192.168.178.8/JQ=6100,8009,8308,8310,8314,8323,8326,8331,8700,8703,8704,8744,8750,8830,8950,9009", "regexp": "[?(@.name, @.value)]", "conv": "json", "role": "value.temperature.level", "write": "", "sched": "*/5 * * * *", "id": { "pre": "Therme.", "post": "", "mid": "name/value", "name": "name", "value": "value" }
Leider liefert die Quelle manchmal "---" statt einem Zahlenwert als value zurück.
Kann ich irgendwie im jsonParse statement das "---" durch "0" ersetzen, sodass der Wert auch als number in sql gespeichert wird? convert steht mir bei json ja nicht mehr zur Verfügung.
-
[?(@.name, @.value.replace('---', '0'))]
funktioniert leider nicht, aber ich habe auch keine Ahnung was bei jsonPath alles erlaubt ist...
-
Da der Adapter auch nicht damit klar kommt, wenn man der Wert einfach per javascript überschreibt, habe ich mich an das eigentlich Ziel gemacht, das schreiben des richtigen Wertes in die Datenbank. Falls wer es braucht, hier mein Script.
Wie gesagt: von der Therme wird in best. Zuständen "---" übertragen, was meistens "Aus" bedeutet. Die möchte ich einfach nur mit "0" in die Datenbank schreiben.
// zu überwachenden Datenpunkte var list = ["systeminfo.0.Therme.Brennermodulation", "systeminfo.0.Therme.Drehzahl_Kesselpumpe", "systeminfo.0.Therme.Vorlaufsollwert_1"] // zu ersetzender Wert var replaceval = "---" // statt dessen in die Datenbank zu schreibender Wert var writeval = "0" // Funktion zum Schreiben in die Datenbank function onChange(dp) { //Abfrage der Datenbank ID sendTo('sql.0', 'query', 'SELECT id FROM iobroker.datapoints WHERE name="' + dp + '"', function (result) { if (result.error) { console.error(result.error); } else { //Zeitstempel var timestamp = Date.now(); //Beispiel query: INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES(34, 1571141625162, 0.0, 0, 7, 0) sendTo('sql.0', 'query', 'INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES(' + result.result[0].id + ', ' + timestamp + ', ' + writeval + ', 0, 7, 0)', function (result) { if (result.error) { console.error(result.error); } else { // Ergebnis anzeigen //console.log('Rows: ' + JSON.stringify(result.result)); } }); } }); } // Schleife zum Anlegen der subscriptions for (var i=0; i<list.length; i++) { // onchange Überwachung on({id: list[i], change: "any"}, function (obj) { var value = obj.state.val; var id = obj.id; //console.log('for_val + id: ' + value + ' ' + id); if (value == replaceval) { // Schreibe ein Log console.log('replace sql logging value "' + value + '" for "' + id + '" with "0"'); onChange(id); } }); }
-
Hat jemand eine Idee wie ich die Zeichen [""] weggefiltert bekomme, so das nur die Zahl übrig bleibt?
VG
Leif -
@capitaenz bin mir nicht ganz sicher, aber ich denke das problem ist das komma - ein wert mit komma ist keine zahl
evtl kommt der adpater durcheinander und scheibt deshalb ein json
-
Hab mir jetzt so geholfen:
Schreibe mir den Wert dann in ein selbst angelegtes Objekt.
Schöner wäre es natürlich, wenn der Adapter dies könnte, so wie der "Parser".
Wollte aber einen Adapter los werden und das wurde jetzt der "Parser", weil dieser keine Zeitplanung für die einzelnen Aufgaben kennt. -
leider checke ich nicht wirklich, wie das hier funktioniert aber ich konnte den wert ohne klammern anzeigen
obwohl die ein toller adapter ist, gibt es echt wenig einträge im forum dafür
meine lösung - damit kann man string in vis anzeigen
- zuerst den datenpunkt löschen
- dann folgendes eintragen
lösung ist dann
ohne Einheit einfach @+"" schreiben
wie gesagt: ich weiß nicht, was ich da mache aber ich brauche das für eine andere webseite - eigentlich habe ich gehofft, ich könnte sowas wie @.replace(",",".") schreiben - da kommt aber ein warning im log
-
@liv-in-sky said in Neuer Adapter 'systeminfo' auf Git und npm:
@+""
Wie kommt man denn darauf? Super, funktioniert! Danke!