NEWS
Daten aus PW geschützte Website
-
@oliverio sagte in Daten aus PW geschützte Website:
du hast eine ältere Version von iobroker
eigentlich nicht. Bin da aktuell auf 4.0.23
Das machen wir mit der folgenden angepassten Zeile selber
funktioniert

Jetzt muss ich noch rausfinden, wie ich
titeldateundpricevom Diesel in die VIS bringe.
Wollte das gerne als 3 DP machen.iobroker.admin ist in stable auf 6.2.23
und habe selbst noch 5.3.8zur darstellung.
leider können json datenpunkte in vis nicht verwendet werden.
das wurde kaputt verbessertich schlag hierfür das widget JSON template im adapter rssfeed (da gehört es eigentlich nicht hin, nutzt aber die gleiche technik wie rssfeed
du platzierst das widget
trägst in json_id dein datenpunkt ein
und traägst in das feld json_template das folgende ein<%= data["Super Plus"].title %><br> <%= data["Super Plus"].date %><br> <%= data["Super Plus"].price %><br>das widget macht den datenpunkt dann unter data verfügbar.
alles was zwischen <% und %> ist als platzhalter zu sehen und wird dann durch die anweisung innerhalb dessen ersetzt.
alles ausserhalb wird als html interpretiert.
man kann da sogar mit javascript programmieren.probier mal ob du damit zurecht kommst
wenn du weißt wie du es darstellen willst, kann ich helfen.
wahrscheinlich in einer tabelle? -
iobroker.admin ist in stable auf 6.2.23
und habe selbst noch 5.3.8zur darstellung.
leider können json datenpunkte in vis nicht verwendet werden.
das wurde kaputt verbessertich schlag hierfür das widget JSON template im adapter rssfeed (da gehört es eigentlich nicht hin, nutzt aber die gleiche technik wie rssfeed
du platzierst das widget
trägst in json_id dein datenpunkt ein
und traägst in das feld json_template das folgende ein<%= data["Super Plus"].title %><br> <%= data["Super Plus"].date %><br> <%= data["Super Plus"].price %><br>das widget macht den datenpunkt dann unter data verfügbar.
alles was zwischen <% und %> ist als platzhalter zu sehen und wird dann durch die anweisung innerhalb dessen ersetzt.
alles ausserhalb wird als html interpretiert.
man kann da sogar mit javascript programmieren.probier mal ob du damit zurecht kommst
wenn du weißt wie du es darstellen willst, kann ich helfen.
wahrscheinlich in einer tabelle?@oliverio sagte in Daten aus PW geschützte Website:
iobroker.admin ist in stable auf 6.2.23
da bin ich schon :)
probier mal ob du damit zurecht kommst
wenn du weißt wie du es darstellen willst, kann ich helfen.
wahrscheinlich in einer tabelle?werde ich testen.
Ich hab derzeit 3 eigene DP (PLZ, Name,, Preis)

Hab das mit Alias gefunden. Da kann man das JSON in eigene DP aufteilen. Das werde ich versuchen.
-
iobroker.admin ist in stable auf 6.2.23
und habe selbst noch 5.3.8zur darstellung.
leider können json datenpunkte in vis nicht verwendet werden.
das wurde kaputt verbessertich schlag hierfür das widget JSON template im adapter rssfeed (da gehört es eigentlich nicht hin, nutzt aber die gleiche technik wie rssfeed
du platzierst das widget
trägst in json_id dein datenpunkt ein
und traägst in das feld json_template das folgende ein<%= data["Super Plus"].title %><br> <%= data["Super Plus"].date %><br> <%= data["Super Plus"].price %><br>das widget macht den datenpunkt dann unter data verfügbar.
alles was zwischen <% und %> ist als platzhalter zu sehen und wird dann durch die anweisung innerhalb dessen ersetzt.
alles ausserhalb wird als html interpretiert.
man kann da sogar mit javascript programmieren.probier mal ob du damit zurecht kommst
wenn du weißt wie du es darstellen willst, kann ich helfen.
wahrscheinlich in einer tabelle? -
@OliverIO
ich nutze auch diesen Dienst, bei mir kommt jedoch im Datenpunkt nichts an (DP ist als JSON angelegt). Es werden auch keine "debug"-Meldungen aus dem Skript ausgegeben (cheerio habe ich im Adapter eingetragen).
Selbst wenn ich testweise falsche Zugangsdaten eingebe, kommt auch keine Meldungen im log.
Hast du eine Idee, woran es liegt kann?Mein System:
Admin: 6.2.23
js-controller: 4.0.23
javascript: 6.1.4
Node.js: v16.18.1
NPM: 8.19.2Edit:
Ich hab mal
responsevon Zeile 66 ausgegeben (siehe unten), Daten kommen zumindest an. Persönliche Daten habe ich mitxxxxxmaskiert -
@OliverIO
ich nutze auch diesen Dienst, bei mir kommt jedoch im Datenpunkt nichts an (DP ist als JSON angelegt). Es werden auch keine "debug"-Meldungen aus dem Skript ausgegeben (cheerio habe ich im Adapter eingetragen).
Selbst wenn ich testweise falsche Zugangsdaten eingebe, kommt auch keine Meldungen im log.
Hast du eine Idee, woran es liegt kann?Mein System:
Admin: 6.2.23
js-controller: 4.0.23
javascript: 6.1.4
Node.js: v16.18.1
NPM: 8.19.2Edit:
Ich hab mal
responsevon Zeile 66 ausgegeben (siehe unten), Daten kommen zumindest an. Persönliche Daten habe ich mitxxxxxmaskiert@latzi sagte in Daten aus PW geschützte Website:
ich nutze auch diesen Dienst
Servus
Ist jetzt etwas OT.
Über was läuft das bei euch?
Ihr zahlt einen Preis von € 1,679 für Diesel.
Wir zahlen € 1,685 -
@latzi sagte in Daten aus PW geschützte Website:
ich nutze auch diesen Dienst
Servus
Ist jetzt etwas OT.
Über was läuft das bei euch?
Ihr zahlt einen Preis von € 1,679 für Diesel.
Wir zahlen € 1,685 -
@latzi sagte in Daten aus PW geschützte Website:
über einen kleinen Arbeitgeber in Linz,
Mannoooo, der Siedlerverein ist dann schlechter beim Verhandeln gewesen. :(
Hmmm, gib mir euer Kennwort. Dann bin ich halt auch bei der Voest! :joy: :joy: -
@latzi sagte in Daten aus PW geschützte Website:
über einen kleinen Arbeitgeber in Linz,
Mannoooo, der Siedlerverein ist dann schlechter beim Verhandeln gewesen. :(
Hmmm, gib mir euer Kennwort. Dann bin ich halt auch bei der Voest! :joy: :joy: -
@OliverIO
ich nutze auch diesen Dienst, bei mir kommt jedoch im Datenpunkt nichts an (DP ist als JSON angelegt). Es werden auch keine "debug"-Meldungen aus dem Skript ausgegeben (cheerio habe ich im Adapter eingetragen).
Selbst wenn ich testweise falsche Zugangsdaten eingebe, kommt auch keine Meldungen im log.
Hast du eine Idee, woran es liegt kann?Mein System:
Admin: 6.2.23
js-controller: 4.0.23
javascript: 6.1.4
Node.js: v16.18.1
NPM: 8.19.2Edit:
Ich hab mal
responsevon Zeile 66 ausgegeben (siehe unten), Daten kommen zumindest an. Persönliche Daten habe ich mitxxxxxmaskiert -
hm, response sieht gut aus.
es kommen sonst keine Fehlermeldungen?
stell bitte das skript mal auf verbose (oben rechts der schraubenschlüssel)ich hab einzeln und auch beide Optionen aktiviert

Im log tauchen aber keinerlei Informationen auf (außer Stop und Start des Skripts:2022-12-09 14:13:37.307 - info: javascript.0 (504) Stop script script.js.common.Spritpreis_IQ 2022-12-09 14:13:37.458 - info: javascript.0 (504) Start javascript script.js.common.Spritpreis_IQ 2022-12-09 14:13:37.462 - info: javascript.0 (504) script.js.common.Spritpreis_IQ: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsKann ich
cheerio.load(body)über die Konsole loggen oder kommt da nur Mist? Ich vermute, dasscheerioda Probleme macht, in node_modules ist es zumindest enthalten.Edit:
Ich hab´s versucht, es kommt Mist ;-)
-
zeig mir bitte mal dein skript genau so wie es nicht läuft (die zeilen mit passwort und user kannst du löschen
ich habe gerade festgestellt, sobald ich
console.info mache oder irgend etwas ausgebe, was anscheinend dem adapter nicht passt, bricht das skript ohne fehlermeldung ab.cheerio mit $ ausgeben zu lassen amcht nicht viel sinn, da das objektmodell doch etwas umfangreicher ist und das nicht soviel spaß macht zu lesen.
cih schau mir das immer im debugger von vs code an.
bei dir kommt aber lustigerweiße eher der source von cheerio als das objektmodell -
zeig mir bitte mal dein skript genau so wie es nicht läuft (die zeilen mit passwort und user kannst du löschen
ich habe gerade festgestellt, sobald ich
console.info mache oder irgend etwas ausgebe, was anscheinend dem adapter nicht passt, bricht das skript ohne fehlermeldung ab.cheerio mit $ ausgeben zu lassen amcht nicht viel sinn, da das objektmodell doch etwas umfangreicher ist und das nicht soviel spaß macht zu lesen.
cih schau mir das immer im debugger von vs code an.
bei dir kommt aber lustigerweiße eher der source von cheerio als das objektmodell -
@latzi sagte in Daten aus PW geschützte Website:
also dein skript genommen und die benutzerdaten von negalein verwendet
funktioniert einwandfrei.
da du den response gepostet hast, in dem auch die kosten enthalten waren,
scheint es tatsächlich an cheerio zu liegen.geh am besten mal in die einstellungen des javascript adapters und entferne dort das cheerio paket wieder, dann speichern, dann den kompletten javascript adapter stoppen und neu starten,
dann cheerio wieder hinzufügen und dann nochmal probierenwenn es dann immer noch nicht funktioniert, machen wir mit cheerio mal einen ganz einfachen test. aber erst mal das
-
@latzi sagte in Daten aus PW geschützte Website:
also dein skript genommen und die benutzerdaten von negalein verwendet
funktioniert einwandfrei.
da du den response gepostet hast, in dem auch die kosten enthalten waren,
scheint es tatsächlich an cheerio zu liegen.geh am besten mal in die einstellungen des javascript adapters und entferne dort das cheerio paket wieder, dann speichern, dann den kompletten javascript adapter stoppen und neu starten,
dann cheerio wieder hinzufügen und dann nochmal probierenwenn es dann immer noch nicht funktioniert, machen wir mit cheerio mal einen ganz einfachen test. aber erst mal das
@oliverio sagte in Daten aus PW geschützte Website:
geh am besten mal in die einstellungen des javascript adapters und entferne dort das cheerio paket wieder, dann speichern, dann den kompletten javascript adapter stoppen und neu starten,
dann cheerio wieder hinzufügen und dann nochmal probierenfunktioniert leider immer noch nicht :-(
-
@oliverio sagte in Daten aus PW geschützte Website:
geh am besten mal in die einstellungen des javascript adapters und entferne dort das cheerio paket wieder, dann speichern, dann den kompletten javascript adapter stoppen und neu starten,
dann cheerio wieder hinzufügen und dann nochmal probierenfunktioniert leider immer noch nicht :-(
dann in neuen skript das folgende eintragen
const cheerio = require('cheerio'); const $ = cheerio.load('<h2 class="title">Hello world</h2>'); $('h2.title').text('Hello there!'); $('h2').addClass('welcome'); $.html();zusätzlich noch debug und verbose einschalten
als Ergebnis muss im skriptlog folgendes erscheinen
15:18:58.522 debug javascript.0 (3875) script.js.Test.test: <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html> -
dann in neuen skript das folgende eintragen
const cheerio = require('cheerio'); const $ = cheerio.load('<h2 class="title">Hello world</h2>'); $('h2.title').text('Hello there!'); $('h2').addClass('welcome'); $.html();zusätzlich noch debug und verbose einschalten
als Ergebnis muss im skriptlog folgendes erscheinen
15:18:58.522 debug javascript.0 (3875) script.js.Test.test: <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html> -
dann in neuen skript das folgende eintragen
const cheerio = require('cheerio'); const $ = cheerio.load('<h2 class="title">Hello world</h2>'); $('h2.title').text('Hello there!'); $('h2').addClass('welcome'); $.html();zusätzlich noch debug und verbose einschalten
als Ergebnis muss im skriptlog folgendes erscheinen
15:18:58.522 debug javascript.0 (3875) script.js.Test.test: <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html> -
dann in neuen skript das folgende eintragen
const cheerio = require('cheerio'); const $ = cheerio.load('<h2 class="title">Hello world</h2>'); $('h2.title').text('Hello there!'); $('h2').addClass('welcome'); $.html();zusätzlich noch debug und verbose einschalten
als Ergebnis muss im skriptlog folgendes erscheinen
15:18:58.522 debug javascript.0 (3875) script.js.Test.test: <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html>cheeriokommt irgendwie mehrfach vor, soll das so sein?latzi@ioBroker:/opt/iobroker$ npm list cheerio iobroker.inst@3.0.0 /opt/iobroker ├── cheerio@1.0.0-rc.12 ├─┬ iobroker.javascript@6.1.4 │ └── cheerio@1.0.0-rc.12 └─┬ iobroker.smartcontrol@1.3.2 └── cheerio@1.0.0-rc.12 deduped latzi@ioBroker:/opt/iobroker$ -
cheeriokommt irgendwie mehrfach vor, soll das so sein?latzi@ioBroker:/opt/iobroker$ npm list cheerio iobroker.inst@3.0.0 /opt/iobroker ├── cheerio@1.0.0-rc.12 ├─┬ iobroker.javascript@6.1.4 │ └── cheerio@1.0.0-rc.12 └─┬ iobroker.smartcontrol@1.3.2 └── cheerio@1.0.0-rc.12 deduped latzi@ioBroker:/opt/iobroker$das ist erstmal ok. das ist das prinzip von node, so das jedes paket genau die version lädt mit der ein paket funktioniert.
evtl musst da mal im forum genereller fragen, wie man das analysieren kann und warum bestimmte pakete da ohne fehlermeldung nicht geladen werden oder nicht richtig funktionieren.
hast du den javascript adapter mal in der instanz übersicht im expertenmodus auf debug umgestellt? evtl kommt dann was wenn man paket hinzufügt oder entfernt

