NEWS
ODL-Adapter
-
Re: Adapter Anfrage: ODL-Messnetz (Bundesamt für Strahlenschutz)
Hallo in die Runde,
ich nutze den Adapter seit geraumer Zeit auf einem Raspberry PI 4 unter Debian Buster.
Habe jetzt einen neuen Raspberry Pi 4 mit dem neuen Rasperry Pi OS 64 Bit aufgesetzt.
Habe alle Instanzen der Adapter neue Installiert und anschließend die IOBroker-Daten vom alten PI mit Backitup auf den neue übertragen.
Dies hat soweit wunderbar funktioniert und es läuft auch alles wieder super auf dem neuen PI.
Lediglich der ODL-Adapter macht Probleme und bringt folgende Fehlermeldung:
odl.0 2023-09-17 08:03:24.056 info Terminated (NO_ERROR): Without reason odl.0 2023-09-17 08:03:24.054 warn Got no data for latest layer odl.0 2023-09-17 08:03:24.053 warn Error: unable to verify the first certificate odl.0 2023-09-17 08:03:24.051 warn Error loading latest data from server! odl.02 023-09-17 08:03:23.670 info starting. Version 2.0.5 in /opt/iobroker/node_modules/iobroker.odl, node: v18.17.1, js-controller: 5.0.12
So wie er sagt kann er irgend ein Certifikat nicht mehr verifizieren.
Der Adapter liefert aktuell auch keine Daten mehr von den Mess-Stationen.
Habe schon die ODL-Instanz gelöscht und neu angelegt und die Mess-Stationen neu eingetragen.
Das hat aber leider keine Erfolg gebracht.Hier noch die aktuelle Konfiguration meine neuen Raspi:
Plattform: linux Betriebssystem: linux Architektur: arm64 CPUs: 4 Geschwindigkeit: 1800 MHz Modell: Cortex-A72 RAM: 7.6 GB System-Betriebszeit: 05:28:04 Node.js: v18.17.1 time: 1694947901560 timeOffset: -120 NPM: 10.1.0 Adapter-Anzahl: 498 Datenträgergröße: 29.0 GB Freier Festplattenspeicher: 25.0 GB Aktive Instanzen: 33 Pfad: /opt/iobroker/ Betriebszeit: 19:08:19 aktiv:
Hat jemand eine Idee und kann mir helfen, das Problem zu lösen?
Gruß Stefan
-
Hallo. Da gibt es ein Zertifikatsproblem (nicht bei dir und nicht beim Adapter). Ich habe das ganze aber schon bei mir seit 2 Jahren via JS gelöst. Falls Interesse besteht - einfach hier melden.
Ro75.
-
Losgelöst vom Problem:
Was hast du denn da gemacht?NPM: 10.1.0
npm wird NICHT separat irgendwie manuell installiert. Das kommt immer in passender Version beim Paket
nodejs
mit. -
Auch bei mir funktioniert ODL seit dem 13.09.2023 nicht mehr, gleiche Fehlermeldung mit dem Zertifikat.
Würdest du deine Lösung mit JS mit uns teilen, wenn diese Lösung noch funktioniert?mfg Ralf
-
@ralf-2 sagte in ODL-Adapter:
ODL seit dem 13.09.2023 nicht mehr,
Eine update auf js-controller: 5.0.12 eventuell durchgeführt !?
Oder was hast du gemacht !?
-
function StrahlungsDaten() { createState('0_userdata.0.Strahlung', '', {type: 'string', read: true, write: true}); var request = require('request'); //Kennzahl für den Ort bitte ODL-Adapter entnehmen var options = {url: 'https://www.imis.bfs.de/ogc/opendata/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=opendata:odlinfo_timeseries_odl_1h&outputFormat=application/json&viewparams=kenn:KENNZAHL#&sortBy=end_measure+A&maxFeatures=168', method: 'GET', "rejectUnauthorized": false, headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { if (!error && response.statusCode == 200) { var info = body; var Position = info.indexOf("],"); var info = info.substr(Position-85, 100); var Position = info.indexOf(":"); var info = info.substr(Position+1, 15); var pos=info.indexOf(","); var str=info; str = str.substr(0, pos); setState('0_userdata.0.Strahlung', str, true); } }) } StrahlungsDaten()
WICHTIG:
tion/json&viewparams=kenn:KENNZAHL#&sortBy=end_me
Hier muss KENNZAHL durch die Kennzahl aus dem ODL-Adapter (einfachste Weg) kopiert werden.
Ro75.
-
@glasfaser sagte in ODL-Adapter:
Eine update auf js-controller: 5.0.12 eventuell durchgeführt !?
Geht auch mit der vorherigen Version nicht mehr. Die haben ein Zertifikatsproblem (BSI).
Ro75.
-
@ro75 sagte in ODL-Adapter:
Geht auch mit der vorherigen Version nicht mehr.
Alles gut , da der Thread Ersteller es auch im Log hat !
Wäre eine Möglichkeit gewesen , das ein Adapter angepasst werden muß ! -
Hallo zusammen,
nein, es passierte mit dem alten js-controller. Hatte den noch nicht upgedatet. Hatte dann heite auf 5.0.12 gesetzt, aber auch hier der Fehler.
@Ro75: Danke für das Skript, ich schaue mir das einmal an.
-
Danke für die Info !
-
Danke für das Skript. Es ist die selbe Vorgehensweise wie im Adapter.
Was fehlt ist der Parameter "rejectUnauthorized: false" in der Webadresse...kenn:051220003#&sortBy=end_measure+A&maxFeatures=168',%20method:%20'GET',%20"rejectUnauthorized":%20false,...
das müßte man nur im Adapter einpflegen. Scheinbar wurde das bis zum 13.09. nicht benötigt.
-
@ralf-2 NEIN. Damit wird nur das Problem mit dem Zertifikat übersprungen. Der Parameter sorgt nur dafür, das der "Fehler" ignoriert wird.
Sauber ist diese Lösung nicht. Diesen Parameter habe ich vor 3 Tagen bei mir im Skript eingefügt und fliegt sofort wieder raus wenn die das Problem mit dem Zertifikat geklärt haben.
Ro75.
-
Hallo zusammen,
wie von @Ro75 bereits geschrieben liegt das Problem beim dem vom BfS verwendeten Zertifikat. Da scheint ein Teil der Zertifikatskette nicht mit ausgeliefert zu werden, wodurch das Zertifikat nicht geprüft werden kann.Ich werde morgen eine Lösung des Problems in die Wege leiten.
Bis dahin bitte etwas Geduld. -
Jetzt sollte es wohl wieder gehen.
Bei mir sind zumindest die Warnungen weg und die Daten kommen wieder.
Könnt ihr das bestätigen? -
danke dir - bei mir sind daten gekommen
-
-
Geht bei mir auch wieder, vielen Dank!
-
@crycode
Es kamen auch bei mir wieder ein paar Werte, hat aber nicht lange angehalten und die Werte blieben wieder aus.
Jedoch gibt es keine Warnmeldungen mehr. -
@ralf-2 Hast du mal geschaut, ob die Messstelle noch "in Betrieb" ist?
Es gibt auch immer mal wieder Störungen in der Datenkommunikation oder Wartungsarbeiten an einer Messstelle. Dann kommen auch für (meist) kurze Zeit keine Daten. Dafür ändert sich dann Status und das sollte auch im*.status
State stehen.
Sonst schreib mir mal kurz um welche Messstelle (9-stellige Kennung) es geht und dann kann ich genauer nachsehen. -
Ich habe festgestellt, dass die vom Adapter gemeldeten Werte nicht über den SQL-Adapter geschrieben werden.
Der Grund hierfür ist offensichtlich, dass der Adapter die Werte mit ACK=false liefert.
Wenn ich die Daten aus dem Objekt-Knoten des Adapters auslesen und mit ACK=true wieder schreibe, werden diese auch von dem SQL-Adapter geschrieben.var valkoblenz = getState('odl.0.071110001.value').val; setState("odl.0.071110001.value",valkoblenz,true);
Hat jemand von Euch ebenfalls dieses Problem?