Anbindung von Kia UVO an fhem

Begonnen von Eckat, 15 Februar 2021, 08:53:19

Vorheriges Thema - Nächstes Thema

Eckat

Moin moin  :)

Entweder ist das hier eine Frage weil ich zu dusselig zum Suchen bin oder es gibt tatsächlich noch nichts.

In ein paar Tagen kommt mein Kia e-Niro, also ein rein elektrisches Auto.
Dieses hat die Kia UVO Connect Funktionalität, mit der man über eine Smartphone App den Zustand des Auto überwachen und einige Dinge fernsteuern kann.
Aktuell wäre mir das Auslesen des Ladezustands des Akkus (SoC) am wichtigsten.

Gibt es dazu schon ein Modul für fhem, dass die Anbindung realisiert?

Kurz noch zum Hintergrund.

Ich habe eine PV-Anlage mit SMA Wechselrichter und einer Tesla Powerwall 2. Dazu zwei go-eCharger als Wallboxen.
Alles ist erfolgreich an fhem angebunden und funktioniert.
Nun war mein Plan, da ich mehr oder weniger täglich wechselnd Home-Office und Präsenzarbeit mache, das Laden so zu automatisieren, dass folgende Punkte berücksichtigt werden:

  • Je Wochentag möchte ich den mindest Akku-Ladestand hinterlegen
  • Das Auto soll über den PV-Überschuss immer geladen werden, damit der Strom im Auto-Akku und nicht im Netz landet
  • Wenn nach Sonnenuntergang der Akku-Ladestand nicht den erforderlichen Wert für den nächsten Morgen erreicht hat, wird über Netzbezug der Rest nachgeladen

Das ist auch alles soweit kein Problem.
Nur kann ich nicht, wie ich das (ohne Recherche) erwartet hatte, den Akku-Ladestand über den go-eCharger abfragen.  ???
Dazu bräuchte ich die Anbindung an das Kia UVO Connect.

Hinweis:
Grundsätzlich scheint das möglich zu sein: https://github.com/wcomartin/kiauvo
Ja, ich weiß das fhem nicht in Python geschrieben ist  ;)

Wenn es nichts gibt, werde ich mich mal daran setzen.
Jedoch sind meine perl-Kenntnisse ... *räusper* ... überschaubar.  :D

Vielen Dank und viele Grüße
Carsten

Det20

#1
https://github.com/wcomartin/kiauvo/blob/master/KiaUvo/__init__.py


base_url = 'https://www.myuvo.ca/tods/api/'
url = self.base_url + 'vhcllst'

req = requests.post(url, headers=headers, data=json.dumps({}))
return [self.get_vehicle_status_by_id(x['vehicleId']) for x in req.json()['result']['vehicles']]


So wie es aussieht, haben die ne API. Aufruf via HTTPS/XHR, Ergebnis ist JSON.
Werde mir das mal anschauen, wenn mein Sorento da ist. Könntest du aber, wenn das so funktioniert, auch schmerzfrei in PHP o.ä. nachbauen.

gadget

Ich häng mich hier mal an. e-soul soll demnächst ausgeliefert werden.

gadget

#3
Mein kia e-soul steht jetzt in der Garage.

Mit https://github.com/Hacksore/bluelinky habe ich es schon mal hinbekommen, mit dem debug-Skript Daten auszulesen (SOC, Voraussichtliche Reichweite usw.)
Ich bekomme sogar den Kilometerstand, den zeigt mir nicht mal die UVO App. Bezüglich nodejs bin ich aber völlig ohne Plan wie ich da jetzt zumindest mal ein CLI-Tool o.ä. draus ableite, das mir die interessanten Daten nach fhem bringt.

Irgendwer hat scheinbar auch mal angefangen, die Daten aus UVO nach MQTT zu übersetzten ( das wäre eigentlich recht elegant und universell), aber da gab es seit 6 Monaten keinen Update. https://github.com/fredrikedling/bluelink_mqtt

Update: Habs inzwischen hingefrickelt bekommen. Die Daten aus UVO, die mich interessieren (km-Stand, SOC, SOC der 12V Hilfsbatterie, Reichweite) landen jetzt per MQTT sowohl in fhem als auch in Home Assistant. Die Aktualisierungsfrequenz mache ich abhängig davon ob der Stromer an der Wallbox hängt oder nicht.

Eckat

Zitat von: gadget am 03 April 2021, 16:43:34Update: Habs inzwischen hingefrickelt bekommen. Die Daten aus UVO, die mich interessieren (km-Stand, SOC, SOC der 12V Hilfsbatterie, Reichweite) landen jetzt per MQTT sowohl in fhem als auch in Home Assistant. Die Aktualisierungsfrequenz mache ich abhängig davon ob der Stromer an der Wallbox hängt oder nicht.

Na toll ... das ist mein "eigener" Thread, aber aus irgendwelchen Gründen waren die Benachrichtigungen nicht aktiv  :o

Könntest du das mit der MQTT Anbindung für UVO näher erläutern?

gadget

#5
Zitat von: Eckat am 27 April 2021, 14:45:43
Könntest du das mit der MQTT Anbindung für UVO näher erläutern?

Ich habe auf dem Raspi (Raspian Stretch 9.13) , auf dem auch fhem läuft, unter dem User pi  bluelinky https://github.com/Hacksore/bluelinky installiert.
npm und nodejs hatte ich eh schon drauf.


Falls noch nicht vorhanden:



sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nodejs npm
sudo npm cache clean -f
sudo npm update npm -g
sudo npm install -g n
sudo n stable

sudo shutdown -r now

npm --version
6.14.12
node --version
v10.24.1



Bluelinky dann installiert (als User pi) mit



mkdir /home/pi/bluelinky
cd /home/pi/bluelinky
npm install bluelinky
npm install async-mqtt




Weiterhin habe ich sowieso einen eingenständigen MQTT Server laufen (Mosquitto), aber hierfür würde der fhem-eigene MQTT2_SERVER auch locker ausreichen.

Benötigt werden:

Ip-Adresse des MQTT-Servers  MQTTIP
Port des MQTT-Server MQTTPORT  (üblicherweise 1883)
Username MQTT-Server:  MQTTUSER
zugehöriges Passwort: MQTTPW

Von UVO braucht man

UVO-Username:  UVOUSER
UVO-Passwort: UVOPW
UVO-Pin:  UVOPIN
Die VIN des Autos: UVOVIN



Als MQTT-Topic verwende  ich BluelinkCarStatus/VIN

Als Vorlage für mein Skript habe ich bluelinky-mqtt-ha verwendet.

Die ganzen Zugangsdaten habe ich direkt in mein Skript (kia.js) geschrieben (  !! ich habe von Javascript so gut wie keinen blassen Schimmer !!).  Das ist von der Sicherheit her eher unschön. Man kann mit den Daten ja z.B. das Auto entriegeln und den Standort abfragen ....

Die kia.js  schaut dann so aus und liegt in /home/pi/bluelinky


const BlueLinky = require('bluelinky');
const MQTT = require("async-mqtt");

const client = new BlueLinky({
  username: 'UVOUSER',
  password: 'UVOPW',
  brand: 'kia',
  region: 'EU',
  pin: 'UVOPIN'
});

client.on('ready', async () => {
  const vehicle = client.getVehicle('UVOVIN');
  try {
    const odo = await vehicle.odometer();
    console.log(odo); 
    const status = await vehicle.status({ parsed: false, refresh: true });
    console.log(status);
    const location = await vehicle.location();
    console.log(location);

    const mqttClient = await MQTT.connectAsync("mqtt://MQTTIP:MQTTPORT", { username:"MQTTUSER", password:"MQTTPW" })
    console.log("Sending to MQTT server");
    if ((status.evStatus.batteryStatus > 0) && (odo.value > 0)) {  // wird gelegentlich falsch mit 0 ausgelesen, dann nicht senden
        try {
                var options={
                retain:true,
                qos:1};
                await mqttClient.publish(
                   "BluelinkCarStatus/UVOVIN",
                   JSON.stringify({
                     odo: odo.value,
                     soc: status.evStatus.batteryStatus,
                     range: status.evStatus.drvDistance[0].rangeByFuel.evModeRange.value,
                     locked: status.doorLock,
                     battery12V: status.battery.batSoc,
                     longitude: location.longitude,
                     latitude: location.latitude,
                   }),options
                );

                // This line doesn't run until the server responds to the publish
                await mqttClient.end();
                // This line doesn't run until the client has disconnected without error
                console.log("mqtt call Done");
        } catch (e){
                // Do something about it!
                console.log(e.stack);
                process.exit();
        }
    } // if
  } catch (err) {
    // log the error from the command invocation
  }
});

client.on('error', async (err) => {
  // something went wrong with login
});


Auf Kommandozeile kann man dann als user pi ausführen mit


cd /home/pi/bluelinky
node kia.js


Auf fhem Seite nimmt dieses MQTT-Device die Daten dann entgegen:
UVOVIN natürlich wieder mit der eigenen VIN ersetzten, IODev auf das passende MQTT2_SERVER Device verweisen, wenn man den fhem-eigenen MQTT-Server verwendet ist das i.d.R. m2s.


defmod kia MQTT_DEVICE
attr kia DbLogInclude .*
attr kia IODev mein_MQTT_Server
attr kia autoSubscribeReadings BluelinkCarStatus/+
attr kia group Auto
attr kia icon car
attr kia stateFormat SOC: UVOVIN_soc % Reichweite: UVOVIN_range km km-Stand: UVOVIN_odo km
attr kia subscribeReading_UVOVIN BluelinkCarStatus/UVOVIN
attr kia userReadings battery {ReadingsNum($name,"UVOVIN_battery12V","") > 30 ? "ok" : "low"},\




Und mit diesem Helper werden aus den JSON-Strings Readings:


defmod ej_kia expandJSON kia:.*
attr ej_kia addReadingsPrefix 1
attr ej_kia addStateEvent 1
attr ej_kia room hidden


und mit diesem Mechanismus starte ich das Skript regelmäßig (sollte man nicht allzu oft machen weil der UVO-Account dann irgendwann geblockt wird)


defmod getuvo dummy
attr getuvo event-on-change-reading state
attr getuvo icon car
attr getuvo room Zeitsteuerung
attr getuvo webCmd on:off

defmod di_uvoUpdate DOIF ## Alle 40 min wenn kein Ladevorgang\
( ([+:40]) and ([?goeCharger1:state] ne "charging") and ([?goeCharger2:state] ne "charging"))\
   (set getuvo on) \
   (set getuvo off) \
DOELSEIF\
## Alle 20 Minuten bei Ladevorgang\
( ([+:20]) and (([?goeCharger1:state] eq "charging") or ([?goeCharger2:state] eq "charging")))\
   (set getuvo on)\
   (set getuvo off)\

attr di_uvoUpdate do always
attr di_uvoUpdate room Zeitsteuerung
attr di_uvoUpdate wait 0,30:0,30

defmod getuvoOn notify getuvo:on {system ("cd /home/pi/bluelinky && node kia.js &")}
attr getuvoOn room Zeitsteuerung



Grüße, gadget

Eckat

Vielen, vielen Dank  :)

Da habe ich ja am Wochenende was zu tun  ;D

Det20

#7
Hallo,

inzwischen ist mein Sorento da und natürlich möchte ich auslesen/steuern, was geht.
Das Script habe ich soweit angepasst, allerdings passiert ... nix.

Mit dem MQTT habe ich noch nie etwas gemacht, hoffe, alles so eingestellt zu haben, wie es sein muss (allowed-Device fehlt hier).

Ein Device wird nicht automatisch angelegt und "nrclients" bleibt auch bei 0, Reading wird auch nicht auf aktuelle Uhrzeit aktualisiert, da kommt also nix an. Wenn ich mich per Telnet verbinde, wird zumindest die Uhrzeit vom Reading aktualisiert.


Internals:
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        1883 global
   FD         22
   FUUID      60d308de-f33f-4070-f6f3-39c86e9a91108539
   NAME       MQTT2_FHEM_Server
   NR         1282
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   .attraggr:
   .attrminint:
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-06-23 12:22:27   lastPublish     BluelinkCarStatus/xxxxxxxxxxxxxxxx:
     2021-06-23 12:29:36   nrclients       0
     2021-06-23 12:29:36   state           Initialized
   clients:
   retain:
Attributes:
   autocreate simple


Habe im Script (kia.js) gesehen, dass dort MQTT verwendet wird, nicht MQTT2. Macht das einen Unterschied?

Oder gibt es einen anderen Weg als das NODE Teil?

VG

gadget

Funktioniert denn die Abfrage der Daten bei UVO prinzipiell wenn du node kia.js auf der Kommandozeile ausführst ?
Ob überhaupt was an den MQTT Server gesendet wird kannst Du z.B. mit dem https://mqtt-explorer.com/ überprüfen.
Wofür hast Du eine MQTT_GENERIC_BRIDGE angelegt ?

Det20

Zitat von: gadget am 23 Juni 2021, 14:15:25
Funktioniert denn die Abfrage der Daten bei UVO prinzipiell wenn du node kia.js auf der Kommandozeile ausführst ?

Da kommt nix. Kein Output, kein Fehler, einfach 5 sekunden lang Pause und dann direkt wieder Prompt. Ohne irgendwelchen output.

Zitat von: gadget am 23 Juni 2021, 14:15:25
Wofür hast Du eine MQTT_GENERIC_BRIDGE angelegt ?

Habe ich nicht oder nicht mit Absicht. Erstellt wird er mit


defmod MQTT2_FHEM_Server MQTT2_SERVER 1883 global
attr MQTT2_FHEM_Server autocreate simple
attr MQTT2_FHEM_Server room AAA
attr MQTT2_FHEM_Server verbose 5

xerion

Zitat von: Det20 am 23 Juni 2021, 14:21:58
Da kommt nix. Kein Output, kein Fehler, einfach 5 sekunden lang Pause und dann direkt wieder Prompt. Ohne irgendwelchen output.

Habe ich nicht oder nicht mit Absicht. Erstellt wird er mit


defmod MQTT2_FHEM_Server MQTT2_SERVER 1883 global
attr MQTT2_FHEM_Server autocreate simple
attr MQTT2_FHEM_Server room AAA
attr MQTT2_FHEM_Server verbose 5


Dann hast du ein grundsätzliches Problem was nichts mit FHEM zu tun hat, die Frage wäre eher bei Bluelinky aufgehoben. Ich vermute aber es liegt daran, das dein Token nicht passt. Arbeite dich hier mal durch, dann bekommst du auch Logausgaben was das Problem ist:

https://github.com/Hacksore/bluelinky#debug-locally
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

Det20

Kenne mich in Node so überhaupt mal garnicht aus, ist (ich oute mich) hauptsächlich Copy-and-Paste.
Eben zumindest mal einen Output bekommen:


Register request has failed with Error=PHONE_REGISTRATION_ERROR


gadget

Schau noch mal genau, ob Du alles richtig im Skript eingetragen hast im kia.js
Mich wundert es etwas, dass Du noch nicht einmal einen Login Error o.ä. bekommst.
Skript auch unter Linux mit vi oder nano erzeugt und nicht unter Windows ( -> CRLF Zeilenenden etc ....) ?

gadget

Zitat von: Det20 am 23 Juni 2021, 14:31:43

Eben zumindest mal einen Output bekommen:


Register request has failed with Error=PHONE_REGISTRATION_ERROR


Das hatte ich auch öfters. Mach nochmal ein


npm install bluelinky
npm update

Det20

Mit Nano. Also unter "client" sind meine Login-Daten angegeben, die ich auch in der "UVO 2021" App verwende. Brand ist "kia", "region" ist "EU". Pin ist der, den ich auch zur Steuerung in der App eingeben muss. Unter "vehicle = client.getVehicle" ist die Fahrzeugnummer hinterlegt. Bleibt nur nut "mqttClient = await MQTT.connceptAsync", dort ist die IP vom FHEM bzw Raspberry sowie Benutzername/Kennwort vom Allowed-Device hinterlegt. Mehr kann ich dort ja eigentlich nicht machen.

Det20

Zitat von: gadget am 23 Juni 2021, 14:35:57

npm install bluelinky
npm update



pi@raspberrypi:~/bluelinky $ npm install bluelinky

> node-aead-crypto@2.1.4 install /home/pi/node_modules/node-aead-crypto
> node lib/install.js

node-aead-crypto is no longer needed on NodeJS 10+
npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json'
npm WARN pi No description
npm WARN pi No repository field.
npm WARN pi No README data
npm WARN pi No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: node-aead-crypto@2.1.4 (node_modules/node-aead-crypto):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: node-aead-crypto@2.1.4 install: `node lib/install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ bluelinky@7.3.0
updated 1 package and audited 488 packages in 16.317s

5 packages are looking for funding
  run `npm fund` for details

found 84 vulnerabilities (36 low, 10 moderate, 38 high)
  run `npm audit fix` to fix them, or `npm audit` for details

gadget

Zitat von: Det20 am 23 Juni 2021, 14:37:44
Mit Nano. Also unter "client" sind meine Login-Daten angegeben, die ich auch in der "UVO 2021" App verwende. Brand ist "kia", "region" ist "EU". Pin ist der, den ich auch zur Steuerung in der App eingeben muss. Unter "vehicle = client.getVehicle" ist die Fahrzeugnummer hinterlegt. Bleibt nur nut "mqttClient = await MQTT.connceptAsync", dort ist die IP vom FHEM bzw Raspberry sowie Benutzername/Kennwort vom Allowed-Device hinterlegt. Mehr kann ich dort ja eigentlich nicht machen.

bei


await mqttClient.publish(
                   "BluelinkCarStatus/UVOVIN"



gehört auch deine VIN hin statt UVOVIN


Det20

Zitat von: gadget am 23 Juni 2021, 14:43:53
bei


await mqttClient.publish(
                   "BluelinkCarStatus/UVOVIN"



gehört auch deine VIN hin statt UVOVIN

Sorry, verschrieben. Ja, da steht die Fahrzeug-ID.

Det20

#18
So im Prinzip arbeitet das Script ja, er hat es eben 2 mal versucht bzw ist 2 mal über den Fehler gestolpert.
Wir reden bei VIN aber über die Fahrzeugidentifikationsnummer, die unter der Fronscheibe, oder? Die mit 17 Zahlen-Zeichen.


pi@raspberrypi:~/bluelinky $ node kia.js
Register request has failed with Error=PHONE_REGISTRATION_ERROR
Retry... 1
Register request has failed with Error=PHONE_REGISTRATION_ERROR
Retry... 2
pi@raspberrypi:~/bluelinky $


No more output :(

gadget

Zitat von: Det20 am 23 Juni 2021, 14:50:52

Wir reden bei VIN aber über die Fahrzeugidentifikationsnummer, die unter der Fronscheibe, oder? Die mit 17 Zahlen-Zeichen.


Ja, genau. Ich würde das an deiner Stelle mal ein paar Tage ruhen lassen und dann nochmal einen Update machen. An dieser stamp cache Sache wird gerade heftigst rumgebastelt(*). Ich hatte den Fehler auch schon öfters und irgendwann ging es dann (nach Update)wieder.


(*) siehe z.B. https://github.com/Hacksore/bluelinky/pull/146

Det20

#20
Update: Die App hat gestern auch nicht mehr funktioniert, ich denke mal, ich habe beim Test eine falsche VIN angegeben, weshalb mein Account für einige Stunden gesperrt wurde. Habe es heute nochmal versucht und siehe da ... Daten sind da. Da der Sorento nur ein Hybrid ist, gab es 'batSoc' nicht. Für die Nachwelt, diese Werte gibt es bei mir (Sorento PHEV). Probiere jetzt rum, wie ich die Werte abgreifen kann, zB Fenster-Position. Kinder vergessen gerne, Fenster hochzumachen.


{ value: 80.1, unit: 1 }
{ airCtrlOn: false,
  engine: false,
  doorLock: true,
  doorOpen: { frontLeft: 0, frontRight: 0, backLeft: 0, backRight: 0 },
  trunkOpen: false,
  airTemp: { value: '01H', unit: 0, hvacTempType: 1 },
  defrost: false,
  lowFuelLight: false,
  acc: false,
  evStatus:
   { batteryCharge: false,
     batteryStatus: 87,
     batteryPlugin: 0,
     remainTime2: { etc2: [Object], etc3: [Object], atc: [Object] },
     drvDistance: [ [Object] ],
     reservChargeInfos:
      { reservChargeInfo: [Object],
        offpeakPowerInfo: [Object],
        reserveChargeInfo2: [Object],
        reservFlag: 0,
        ect: [Object] } },
  ign3: true,
  hoodOpen: false,
  transCond: false,
  steerWheelHeat: 0,
  sideBackWindowHeat: 0,
  tirePressureLamp: { tirePressureLampAll: 0 },
  seatHeaterVentState:
   { frSeatHeatState: 2,
     flSeatHeatState: 2,
     rlSeatHeatState: 2,
     rrSeatHeatState: 2 },
  lampWireStatus:
   { stopLamp: { stopLampStatus: false, leftLamp: false, rightLamp: false },
     headLamp:
      { headLampStatus: false,
        leftLowLamp: false,
        rightLowLamp: false,
        leftHighLamp: false,
        rightHighLamp: false },
     turnSignalLamp:
      { turnSignalLampStatus: false,
        leftFrontLamp: false,
        rightFrontLamp: false,
        leftRearLamp: false,
        rightRearLamp: false } },
  windowOpen: { frontLeft: 0, frontRight: 0, backLeft: 0, backRight: 0 },
  smartKeyBatteryWarning: false,
  fuelLevel: 100,
  washerFluidStatus: false,
  breakOilStatus: false,
  time: '20210624092842' }
{ latitude: xx.xxxx,
  longitude: x.xxxx,
  altitude: 0,
  speed: { unit: 0, value: 0 },
  heading: 0 }


Hast du auch rausbekommen, wie man steuert, also zB die Tür zumacht wenn man es abends vergessen hat? Oder den Ladevorgang startet/beendet?
Über die App geht das, aber geht es auch per Befehl?

Vielen Dank für die Hilfe!

gadget

bluelinky kann auch senden. Ist für mich aber kein Thema. Wenn ich was remote auslösen will nehme ich die UVO App.
Alerting bei offenen Fenster etc. geht ja auch so schon, wenn Du die kia.js ein wenig erweiterst und die  für Dich interessanten Sachen heraussuchst und in einem anderen MQTT Topic weiterleitetest.

Vielleicht findet sich ja mal irgendwann jemand, der ein richtiges fhem-Modul für die Hyundai / Kia API schreibt, bis dahin reicht mir dieser Hack aus. Mir ging es vor allem darum, den Ladezustand und die Reichweite auf dem Wohnzimmer-Panel anzeigen zu können, damit ich dran denke den rechtzeitig vor einer größeren Fahrt an die Wallbox zu hängen.

Det20

#22
Habe mir nun extra eine JS erstellt, die nix anderes macht und rufe die aus FHEM heraus auf. Klappt für mich, mehr kann mein PHEV (leider) nicht.

Frage nun auch ab, ob das Auto offen/zu ist, ob Fenster oben sind usw. Das kombiniere ich dann mit dem Regensensor und schicke mir eine Push-Nachricht: Wenn Auto zu Hause, nicht an und eines der Fenster unten, dann Hinweis auf's Handy. Außerdem abends, falls ich mal wieder vergessen habe, das Auto abzuschließen.

kia_lock.js


const BlueLinky = require('bluelinky');

const client = new BlueLinky({
  username: 'xxxx',
  password: 'xxxx',
  brand: 'kia',
  region: 'EU',
  pin: 'xxx'
});

client.on('ready', async () => {
  const vehicle = client.getVehicle('xxxxxxxxxxx');
  const response = await vehicle.lock();
  console.log(response);
});


bluelinky in PHP oder FHEM zu übersetzen ist an sich kein Problem, die arbeiten auch nur mit HTTP Calls. Allerdings ist da dauernd ne Änderung drin, KIA und Hyundai scheinen da dauernd was zu ändern. Mir würde die Zeit für die wöchentlichen Anpassungen fehlen. Leider.

Vorhand

Hallo gadget,
vielen Dank für das Beispiel KIA. Habe mir alles so installiert wie beschrieben. Hatte jedoch ein paar Problemchen.
1. Da ich nur den MQTT2-Server von fhem benutze, gibt es keinen username und kein passwort. Ich habe in der kia.js die Schweifklammer leer gelassen - ist das ok?
2. Bei dem "defmod kia MQTT_DEVICE" gibt es 3 Attribute nicht: attr kia DbLogInclude .* und attr kia autoSubscribeReadings BluelinkCarStatus/+ sowie attr kia subscribeReading_UVOVIN BluelinkCarStatus/UVOVIN
Die anderen UVOINs habe ich jeweils mit der Fahrzeugnummer ersetzt.

Bei Eingabe von node kia.js kommt:

(node:14968) UnhandledPromiseRejectionWarning: Error: Vehicle not found: 60x...x05a!
    at ne.getVehicle (/home/pi/bluelinky/node_modules/bluelinky/dist/index.js:17:48507)
    at ne.<anonymous> (/home/pi/bluelinky/kia.js:13:26)
    at ne.emit (events.js:400:28)
    at ne.<anonymous> (/home/pi/bluelinky/node_modules/bluelinky/dist/index.js:17:48147)
    at Generator.next (<anonymous>)
    at s (/home/pi/bluelinky/node_modules/bluelinky/dist/index.js:17:85)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:14968) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:14968) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


Im kia device tut sich gar nichts.
Habt ihr eine Idee, was noch fehlen könnte?
Danke
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

Vorhand

Hallo Det20,

wenn ich es richtig gelesen habe, nutzt du den MQTT2 von fhem. Kannst du bitte den kompletten code für die kia-MQTT-Device zeigen.
Danke
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

Vorhand

Natürlich bin ich auch über die VIN von Kia gestolpert. Hab die ganze Zeit eine Fahrgestellnummer verwendet. Jetzt funktioniert es - danke.
Auf die richtige VIN bin ich erst gekommen, nachdem ich die neue KIA-App installierte. Da stand sie gut sichtbar.

In deinem DOIF verwendest du ja eine Wallbox, deren Ladeaktivität abgefragt wird (?goeCharger1:state).
Eigentlich würde es ja genügen, wenn man den KIA selbst die Ladung - über einen entsprechenden Befehl - steuern lässt. Eine FI-gesicherte Steckdose würde dann schon genügen.

Frage: Gibt es eine Liste aller möglichen Daten für einen PHEV (Plugin-Hybrid), die man über bluelinky abfragen kann?
Danke
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

ch.eick

Hallo zusammen,
nächste Woche hole ich meinen e-Niro ab und möchte den natürlich auch an FHEM anbinden.
Habt Ihr hier schon einen Leitfaden zusammen geschrieben?
Was brauche ich alles dafür? OVU auf dem Handy steht bereit, aber das Auto wird erst nächste Woche registriert.
MQTT2 ist nur in den Grundzügen bei mir im FHEM eingerichtet, wurde jedoch noch nie verwendet.
Die openWB hängt bereits und ich werde sie morgen mal einschalten.

Worauf sollte ich zubeginn direkt achten?

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Rewe2000

Hallo zusammen,

auch ich lese interessiert mit, bei mir dauert es aber noch bis März/April 2022 bis ich meinen bekomme.
Ich hoffe ihr findet eine passende Lösung für Fhem, denn die grundsätzlichen Daten wären schon gut, wenn man die irgendwie in Fhem bekommen würde.


Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

gadget


Det20

Ein Hinweis an alle, da ich gerade drauf reingefallen bin. War eine Woche im Urlaub, mein Sorento stand in der Zeit in Frankfurt in einem Parkhaus. Als ich wieder angekommen bin, lief nix mehr. Kein Licht, keine Zentralverriegelung, einfach nichts. Passiert ist folgendes:

- FHEM hat stündlich den Status abgefragt
- Sorento hat jedesmal den Hauptcomputer geweckct und den Status übermittelt, dafür wird die 12v Batterie genutzt
- Das hat nach 6 Tagen dafür gesorgt, dass die 12v Batterie leer ist
- Normalerweise wird die automatisch über die Hybrid-Batterie geladen, die war aber auch leer (fahrt nach Frankfurt dauert)
- Für das anschalten wird die 12v benötigt, danach wird die Hybrid-Batterie genommen

Da also die 12v leer war und nicht geladen werden konnte, war alles tot. Bedeutet: Fragt nicht zu häufig ab, ansonsten zieht es euch die Batterie leer. Wieso die bei Kia nicht nen Unterspannungsschutz eingebaut haben (Abfrage blockieren, wenn 12v < 50% voll) ist mir ein Rätsel; ist aber so.

xerion

Aus diesem Grunde sollte man die Abfrage auch nur machen wenn das Fahrzeug Zuhause steht  8)
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

Det20

Das weiß ich nun auch 8) Deshalb der Hinweis hier im Forum. Allerdings hilft das auch nur bedingt, leergelutscht wird die Batterie auch zu Hause.

xerion

Ja stimmt aber man kann ja unterscheiden ob man am Laden ist oder ob das Auto "nur" herum steht. Wenn das Auto steht was sollte sich dann an den Werten Groß anderen das man diese in kurzen Intervallen abfragen sollte. Das Verhalten mit dem entleeren der Batterie kann man in diversen Foren wiederfinden.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

ch.eick

#33
Zitat von: Det20 am 05 Januar 2022, 16:56:55
Das weiß ich nun auch 8) Deshalb der Hinweis hier im Forum. Allerdings hilft das auch nur bedingt, leergelutscht wird die Batterie auch zu Hause.
Den Unterspannungsschutz sollte man auch selber einbauen
Das ist aus meinem DOIF
- Wärend des Ladens alle 15 Minuten
- ansonsten jede Stunde mit check der 12V Batterie
- Sollten mal die 40% erreicht sein, gibt es erst wieder eine Abfrage beim Laden, oder wenn man es manuell aktiviert

< snip >
################################################################################################################
## 1 Kia Connect Status Abfrage erfolgt mit MQTT2 ==> node-ret ==> Kia Connect
##
1_Status_getAll
{if( !([$SELF:state] eq "off")                                         ## DOIF enabled
     and [Kia_connect:req_active] eq "idle"
     and
     (  ([+00:15] and                                                  ## alle 15 Minuten
         [Kia_connect:atHomeStanding] eq "true" and                    ##   wenn das Auto zuhause ist
         [Kia_connect:charging]       eq "true" or                     ##   und es geladen wird
         [:58]                                                         ## ansonsten nur jede Stunde
        ) and [Kia_connect:bat12v] > 40                                ## aber die 12V Batterie sollte noch genügend Ladung haben
      or [$SELF:cmd_event]  eq "set_cmd_1"                             ## Das reagiert auf den Aufruf mit "set <Device> cmd_*"
      or [$SELF:ui_command_1] eq "Status_getAll"                       ## Hier wird das uiTable select ausgewertet
     )
   ) {
    if( [$SELF:ui_command_1] eq "Status_getAll" ) {                    ## Hier wurde manuell eingeschaltet
      set_Reading("ui_command_before_1",[$SELF:ui_command_1]);
    }

    fhem_set("Kia_connect getAll");                                    ## beliebige Kommandos für diesen Block

    set_Reading("ui_command_1","---");                                 ## Hier wird das uiTable select wieder zurückgesetzt, ansonsten
                                                                       ## kann das Kommando nicht sofort wiederholt werden
  }
}
< snip >


Hat von Euch jemand die Temperatur Abfrage mit node-red schon korrigieren können? Da werden immer 15° oder höhere Werte angezeigt, aber nie weniger als 15° :-)

Beim ACE (Auto Club Europa) ist übrigens ein Abschleppen bis zur nächsten Ladesäule in der Ladekarte mit drin. Die Ladekarte hat keine Grundgebühr und kostet pro Ladevorgang 0.39 €. Der kWh Preis wird in der App angezeigt.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Zitat von: xerion am 05 Januar 2022, 17:01:56
Ja stimmt aber man kann ja unterscheiden ob man am Laden ist oder ob das Auto "nur" herum steht. Wenn das Auto steht was sollte sich dann an den Werten Groß anderen das man diese in kurzen Intervallen abfragen sollte. Das Verhalten mit dem entleeren der Batterie kann man in diversen Foren wiederfinden.
Ich verwende auch die Standheizung/Klimatisierung über meinen Kalender oder mit FHEM Timer ;-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

gadget

...  ist uns mit dem reinen BEV e-Soul auch schon mehrfach passiert, da ist ist in der Traktionsbatterie noch massenhaft Energie, aber die Ladeautomatik, die die 12V-Hilfsbatterie nachladen soll, versagt wohl bei Kia/Hyundai gelegentlich oder irgend ein dummes Steuergerät schaltet nicht in den Deep Sleep. Ich bastle mir gerade eine Spannungsüberwachung, die direkt an die 12V-Batterie geklemmt wird, analog zu https://www.instructables.com/DIY-Monitor-Your-Car-Battery-Code-Setup/. Hätte in Deinem Fall natürlich auch nix gebracht, wenn die Kiste ausserhalb der häuslichen WLAN-Reichweite parkt.


gadget

Zitat von: ch.eick am 05 Januar 2022, 17:12:00
- Sollten mal die 40% erreicht sein, gibt es erst wieder eine Abfrage beim Laden, oder wenn man es manuell aktiviert

Hat das bei Dir schon jemals gezogen ?
Ich logge die Werte mit. Da war nie weniger als 70% dabei. Kurz vor den letzten beiden Ausfällen lag der Wert bei über 90%.
Und nach dem Neustart via Booster und ein wenig rumfahren ist der Wert dann tagelang bei 255%.


ch.eick

Zitat von: gadget am 05 Januar 2022, 18:40:40
Hat das bei Dir schon jemals gezogen ?
Ich logge die Werte mit. Da war nie weniger als 70% dabei. Kurz vor den letzten beiden Ausfällen lag der Wert bei über 90%.
Und nach dem Neustart via Booster und ein wenig rumfahren ist der Wert dann tagelang bei 255%.
Ich habe den eNiro und da ist die 12V Batterie schon manchmal unter 40% gefallen, da wir nicht sooo viel Fahren und wenn dann auch oft Kurzstrecke.
Über 80% habe ich noch nie gesehen, auch nicht nach einem WE mit 500 km . Einen Ausfall hatte ich noch nie, der Wagen ist aber auch erst 5 Wochen alt.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Det20

Schade, im Sorento PHEV scheint es "battery.status.batSoc" nicht zu geben.

gadget

Zur Info: Kia hat scheinbar heute was gebastelt, die bluelinky-Entwickler sind dran.

https://github.com/Hacksore/bluelinky/issues/199

ch.eick

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Rewe2000

Hallo,

ich wollte diesen älteren Beitrag nochmals aufwärmen und mich bei euch umhören ob der beschriebene Weg, wie im Beitrag https://forum.fhem.de/index.php/topic,118822.msg1152770.html#msg1152770 auch jetzt noch klappt oder es zwischenzeitlich bessere Wege gibt um an die Daten zu kommen. Als Nachfolger gibt es ja jetzt die KIA Connect App, es könnte auch sein, dass hier keine Anbindung mehr möglich ist.

Nachdem ich nun meine komplette PV-Anlage und meine Wallbox in Fhem (FUIP) visualisiert habe, fehlen nur noch einige Daten vom e-Niro (Modelljahr 2022), welche ich gerne eingebunden hätte.
Mein Ziel ist es aktuell nicht das Fahrzeug zu steuern sondern nur einige Daten (SOC Fahrakku, div. Meldungen, etc.) auszulesen.
Ich freue mich auf eure Erfahrungen.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

gadget

Läuft bei mir weiterhin. Ich habe aber das Intervall der Abfragen auf 6h erhöht wenn nicht geladen wird.
Da bei einer Abfrage die ganzen Steuergeräte mehre Minuten aufwachen ist das sonst zuviel Energieverschwendung und Belastung der 12V Batterie.
Übrigens gibt es beim e Soul noch ein sehr gut verstecktes Setting um die Ladeleistung zu halbieren. Kann bei PV Überschussladen ganz hilfreich sein wenn die wallbox nicht zwischen 1phasigen und 3phasigen laden umschalten kann.


ch.eick

Zitat von: Rewe2000 am 06 Januar 2023, 16:02:45
Hallo,

ich wollte diesen älteren Beitrag nochmals aufwärmen und mich bei euch umhören ob der beschriebene Weg, wie im Beitrag https://forum.fhem.de/index.php/topic,118822.msg1152770.html#msg1152770 auch jetzt noch klappt oder es zwischenzeitlich bessere Wege gibt um an die Daten zu kommen. Als Nachfolger gibt es ja jetzt die KIA Connect App, es könnte auch sein, dass hier keine Anbindung mehr möglich ist.

Nachdem ich nun meine komplette PV-Anlage und meine Wallbox in Fhem (FUIP) visualisiert habe, fehlen nur noch einige Daten vom e-Niro (Modelljahr 2022), welche ich gerne eingebunden hätte.
Mein Ziel ist es aktuell nicht das Fahrzeug zu steuern sondern nur einige Daten (SOC Fahrakku, div. Meldungen, etc.) auszulesen.
Ich freue mich auf eure Erfahrungen.

Gruß Reinhard
Hallo Reinhard,
ich habe es mit Node-Red für Bluelinky zu MQTT integriert. Hier ist die Doku und Bilder

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Rewe2000

Hallo,

vielen Dank für eure Antworten, ich werde dann diese Baustelle demnächst auch mal bei mir angehen.

@gadget: Danke für den Hinweis mit der 12V-Batteriebelastung durch zu häufige Abfragen. Ich plane auch maximal 2-4 Abfragen pro Tag, Abfrage des SOC wäre für mich vordringlich um diesen Wert in Fhem zu haben.

@Christian: Vielen Dank für deine ausführliche Doku, da hast du ja einiges umgesetzt. So umfangreich wird es bei mir nicht werden, da ich ein E3DC System mit Wallbox habe, da ist die Überschussladung für die Wallbox schon im Stromspeicher integriert.

Grundsätzlich betreibe ich mein Fhem System auf 2 Raspi4, einer für Fhem und der andere für MariaDB zur Datenablage in einer SQL-Datenbank. Keinerlei Ahnung habe ich derzeit mit MQTT, ich werde mich da erst einarbeiten müssen , sicherlich werde ich mir da den einen oder anderen Tipp bei euch holen müssen.
In den nächsten Tagen werde ich mich gründlicher einlesen und die Voraussetzungen erkunden, was ich dazu alles noch benötige.

So wie ich es derzeit verstanden habe, benötige ich dazu zwingend noch einen MQTT-Server und bluelinky. Bluelinky läuft bei dir innerhalb von Node-Red, dies bedeutet, ich benötige auch noch Node-Red. Ganz sicher bin ich mir derzeit noch nicht, ob ich überhaupt Node-Red zwingend benötige, wenn ich keine umfangreichen Steuerungen durchführen will.

Reicht denn da überhaupt ein Raspi4 (4GB) aus um alle Komponenten zu beherbergen? Meine SQL-Datenbank habe ich erst vor einigen Wochen auf einen eigenen Raspi ausgelagert, da ich in der Vergangenheit häufiger Speichermangel bekommen hatte.
Bis das dann alles bei mir läuft, werde ich euch sicherlich noch mehrmals nerven müssen ;)

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

ch.eick

Hallo Reinhard
Zitat von: Rewe2000 am 07 Januar 2023, 14:58:05
Grundsätzlich betreibe ich mein Fhem System auf 2 Raspi4, einer für Fhem und der andere für MariaDB zur Datenablage in einer SQL-Datenbank. Keinerlei Ahnung habe ich derzeit mit MQTT, ich werde mich da erst einarbeiten müssen.
So wie ich es derzeit verstanden habe, benötige ich dazu zwingend noch einen MQTT-Server und bluelinky. Bluelinky läuft bei dir innerhalb von Node-Red, dies bedeutet, ich benötige auch noch Node-Red. Ganz sicher bin ich mir derzeit noch nicht, ob ich überhaupt Node-Red zwingend benötige, wenn ich keine umfangreichen Steuerungen durchführen will.
Ich habe es mir da möglichst einfach gemacht und Node-Red im Docker Container. Das ist für mich nur ein Umsetzer. Den Bluelinky Workflow hatte ich auch nur Kopiert, später jedoch noch an einigen Stellen Erweitert, da nicht alles drin war.
Bei MQTT habe ich nur das MQTT2 direkt im FHEM verwendet, also keinen anderen Server dazwischen.

Zitat
Reicht denn da überhaupt ein Raspi4 (4GB) aus um alle Komponenten zu beherbergen? Meine SQL-Datenbank habe ich erst vor einigen Wochen auf einen eigenen Raspi ausgelagert, da ich in der Vergangenheit häufiger Speichermangel bekommen hatte.
Bei mir ist alles auf einem RPI4 4GB, jedoch ist es wichtig am besten direkt eine SSD auch zum Booten zu verwenden. Eine Datenbank sollte man niemals auf einer SD-Card betreiben!
MySQL habe ich als Docker Container direkt von Oracle MySQL genommen, damit es endlich auch mal aktuell ist. Dazu muss man den RPI4 aber im 64 Bit installieren, da der Container nur mit 64 Bit für arm angeboten wird.

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Rewe2000

#46
Hallo Christian,

ich wollte eben die Einrichtung bei mir auch angehen, bekomme aber schon bei der Installation von nodejs und npm Probleme, eventuell kann mir da noch jemand ein wenig weiterhelfen.
Die Installation auf meinem Raspi4 mit SSD ohne Docker (aktuelles Debian Bullsey), auf welchem auch Fhem läuft wollte ich gemäß der Anleitung von gadget durchführen: https://forum.fhem.de/index.php/topic,118822.msg1152770.html#msg1152770

Nach "sudo npm cache clean -f" kommt die Warnung:
npm WARN using --force Recommended protections disabled.

Das Update mit "sudo npm update npm -g" bringt folgende Fehler:
npm ERR! code ENOENT
npm ERR! syscall scandir
npm ERR! path /usr/local/lib/node_modules
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, scandir '/usr/local/lib/node_modules'
npm ERR! enoent This is related to npm not being able to find a file."
npm ERR! Enoent
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2023-02-27T16_11_37_623Z-debug.log


Grundsätzlich scheint aber die Installation von nodejs und npm schon geklappt zu haben, denn mir werden folgende Versionen angezeigt:
node -v
v12.22.12
npm -v
7.5.2


Auch finde ich nodejs bei mir nicht unter "/usr/local/lib/" sondern im Verzeichnis "/usr/lib/nodejs".
Die Installation unter dem Standarduser mit sudo war doch OK oder hätte ich da root verwenden müssen?

Da ich mein Linux nicht schrotten will, warte ich lieber mal eure Antwort ab, bevor ich da selbst versuche etwas zu ändern.
Sollten noch Infos fehlen, so gebt mir bitte kurz Bescheid, damit ich Nachliefern kann.

Anbei noch das Logfile der Installation, ab Zeile 25 sieht es für mich wie fehlende Berechtigung aus:
0 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'update', 'npm', '-g' ]
1 info using npm@7.5.2
2 info using node@v12.22.12
3 timing config:load:defaults Completed in 4ms
4 timing config:load:file:/usr/share/nodejs/npm/npmrc Completed in 6ms
5 timing config:load:builtin Completed in 7ms
6 timing config:load:cli Completed in 6ms
7 timing config:load:env Completed in 1ms
8 timing config:load:file:/home/reinhard/.npmrc Completed in 1ms
9 timing config:load:project Completed in 3ms
10 timing config:load:file:/root/.npmrc Completed in 0ms
11 timing config:load:user Completed in 0ms
12 timing config:load:file:/etc/npmrc Completed in 0ms
13 timing config:load:global Completed in 1ms
14 timing config:load:cafile Completed in 1ms
15 timing config:load:validate Completed in 0ms
16 timing config:load:setUserAgent Completed in 2ms
17 timing config:load:setEnvs Completed in 2ms
18 timing config:load Completed in 28ms
19 verbose npm-session d0884523ae5ecc3b
20 timing npm:load Completed in 56ms
21 timing arborist:ctor Completed in 2ms
22 timing idealTree:init Completed in 27ms
23 timing idealTree Completed in 38ms
24 timing command:update Completed in 76ms
25 verbose stack Error: ENOENT: no such file or directory, scandir '/usr/local/lib/node_modules'
26 verbose cwd /home/reinhard
27 verbose Linux 5.15.84-v7l+
28 verbose argv "/usr/bin/node" "/usr/bin/npm" "update" "npm" "-g"
29 verbose node v12.22.12
30 verbose npm  v7.5.2
31 error code ENOENT
32 error syscall scandir
33 error path /usr/local/lib/node_modules
34 error errno -2
35 error enoent ENOENT: no such file or directory, scandir '/usr/local/lib/node_modules'
36 error enoent This is related to npm not being able to find a file.
37 verbose exit -2


Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

ch.eick

Hallo Reinhard,
Wie gesagt habe ich das noch nie selber installiert, da nehme ich lieber einen Docker Container, das geht schneller.
Du solltest es einfach auch mal probieren.  Es ist möglich das auch parallel zu testen.

VG Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Rewe2000

Hallo Christian,

jetzt habe ich die Kurve doch noch bekommen und es läuft nun auch bei mir ohne größere Probleme. Die Einrichtung von von nodejs und npm, hat wie unter #5 hier im Beitrag bei mir nicht funktioniert. Ich bin dann wie im Blogbeitrag von Otto https://heinz-otto.blogspot.com/2019/05/installation-nodejs.html vorgegangen und die Installation lief Problemlos durch. Ich habe unter Fhem den MQTT2_SERVER installiert, eine feste clientId vergeben und ein MQTT2_DEVICE wird automatisch angelegt. Da bei mir ja der MQTT Server auf dem Raspi selbst läuft musste ich als IP-Adresse noch die 127.0.0.1 angeben.

Die Abfragen starte ich mit einem doif 5 x täglich zu festen Zeiten.

Danke euch allen für die Tipps hier in Fhem-Forum, besonderer Dank an gadget, ohne diese hätte ich das nicht zum laufen bekommen.

Irgendwann werde ich das mit Docker angehen, aber aktuell wollte ich zuerst meinen KIA in Fhem einbinden.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Rewe2000

Hallo,

einen Tipp von euch benötige ich noch.
Welche Möglichkeit gibt es das "node kia.js" unter Fhem aufzurufen, ohne dass die Logdatei zugemüllt wird oder Fhem komplett einfriert?

Ich rufe "node kia.js" über ein notify auf, der Nachteil ist aber, dass die Ausgabe immer ins Fhem Log geschrieben wird:
Internals:
   DEF        du_KIA_lesen:on {system ("cd /home/reinhard/bluelinky && node kia.js &")}
   FUUID      63ff77ee-f33f-7df9-d038-326aaa46da16751f
   NAME       no_KIA_lesen
   NOTIFYDEV  du_KIA_lesen
   NR         596
   NTFY_ORDER 50-no_KIA_lesen
   REGEXP     du_KIA_lesen:on
   STATE      2023-03-02 12:02:00
   TYPE       notify
   READINGS:
     2023-03-02 15:48:07   state           active
     2023-03-02 12:02:00   triggeredByDev  du_KIA_lesen
     2023-03-02 12:02:00   triggeredByEvent on
Attributes:
   DbLogExclude .*
   icon       car
   room       Auto
   verbose    1



Nach viel Lesen zum Thema bin ich auf den Aufruf über "qx()" gekommen (hier Testweise Eingabe über Fhem Komandozeile), dies legt mir aber mein Fhem komplett so lange lahm, bis ich es über die Konsole beende und neu starte:
{qx(cd /home/reinhard/bluelinky && node kia.js)}

Ich hoffe irgendwer kann mir (Linux Anfänger) hier noch den entscheidenden Tipp geben.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

gadget

Also das letzte & schickt den ganzen system-Aufruf ja in den Background. fhem sollte daher normal weiterlaufen.

kannst Du mal hiermit testen:


defmod d_test dummy
attr d_test room Test
attr d_test webCmd on:off

defmod externalTest notify d_test:on {system ("cd /home/pi && echo start && touch /tmp/gestartet && sleep 60 && touch /tmp/beendet && echo ende  &")}
attr externalTest room Test



und dir dann mit ls -lart /tmp die Zeitstempel anschauen.

Während der 60 Sekunden sollte fhem auch ganz normal weiter nudeln.

Wenn Du den Output im fhem log  weg haben willst probier mal


{system ("cd /home/reinhard/bluelinky && node kia.js > /dev/null 2>/dev/null &")}


Ist den System evtl. etwas unterdimensioniert und Du kommst  mit dem node - Aufruf an die Performance-Grenze ?

Dann könnte evtl. noch ein "nice" helfen.


{system ("cd /home/reinhard/bluelinky && nice node kia.js > /dev/null 2>/dev/null &")}

Rewe2000

Hallo gadget,

vielen Dank für den Tipp, durch Anhängen von "> /dev/null 2>/dev/null" erhalte ich keinen Logeintrag in Fhem mehr. Mir hatte es gestern durch etliche Tests mein Fhem Systemlog gefüllt und das wollte ich nicht so lassen.

Das Blockieren ist nur mit dem Aufruf "qx()" aufgetreten, aber auf diese Problematik wurde in einigen Beiträgen verwiesen. Grundsätzlich sollte die Leistung meines Raspi4 mit 4 GB für diese Anwendung ausreichen, aktuell laufen die Anfragen jedenfalls ohne Probleme.

Ich möchte mich nochmals bei dir für deine veröffentlichte Anleitung im Beitrag #5 bedanken, ohne diese Hilfe hätte ich meinen KIA niemals abfragen können.
In der nächsten Zeit werde ich noch ein wenig mit den Daten der Abfrage experimentieren und mir eventuell noch ein paar mehr Werte in Fhem holen, sicherlich werde ich dazu noch die eine oder andere Frage haben.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Rewe2000

#52
Hallo Christian,

funktioniert bei dir noch die Abfrage über node kia.js?
Bei mir kommt folgende Meldung (unter Linux):

:~/bluelinky $ node kia.js
[2023-04-05 16:18:39] warn: @EuropeanBrandAuthStrategy.login: Cannot find the argument userId, please use the following url and connect from a browser.
[2023-04-05 16:18:39] warn: https://prd.eu-ccapi.kia.com:8080/api/v1/user/oauth2/authorize?response_type=code&state=test&client_id=fdcxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx&redirect_uri=https://prd.eu-ccapi.kia.com:8080/api/v1/user/oauth2/redirect

An den Zugangsdaten oder der Konfiguration habe ich wissentlich nichts geändert, über die APP (Android) klappt es noch.
Die letzte Abfrage war bei mir gestern um 23:00 Uhr.

Stand 08.04.2023 klappt es wieder, nach einem Update von bluelinky unter Linux mit:
npm install bluelinky
Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

ch.eick

Zitat von: Rewe2000 am 05 April 2023, 16:33:24Hallo Christian,
funktioniert bei dir noch die Abfrage über node kia.js?
Sorry für die späte Meldung,
das neue Forum macht mich etwas langsamer :-)

Also bei mir läuft es aktuell, aber vor einigen Wochen war da mal eine Störung durch den Kia Server. Nach diversen Stunden und einem Node-red Neustart des Flow lief es dann wieder.

Wäre hier jemand in der Lage den Flow mit einem Watchdock Timer zu verbessern, dass dann eine klarere Statusmeldung kommt?

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Rewe2000

Hallo Christian,

wurde heute Nachmittag über deine 2 neuen Beiträge per Mail benachrichtigt, aber beide Links zu den Forenbeiträgen gehen bei mir ins Leere und ich kann auch die Beiträge von dir im Forum nicht finden.
Komisch das ganze, ev. ein Problem mit der Forensoftware?
Kannst du denn überhaupt deine Beiträge selbst sehen?

Die beiden Links, welche bei mir ins leere gehen lauten:

https://forum.fhem.de/index.php?topic=118822.new#new
https://forum.fhem.de/index.php?topic=116175.new#new

Die MQTT Anbindung über Bluelinky mit dem KIA-Server läuft bei mir bis jetzt Problemlos. Ich befürchte das Problem muss bei dir selbst liegen.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

ch.eick

Sorry,
Ich hatte sie sehr schnell wieder gelöscht, es lag bei mir und die Kia App hat die maximale Anzahl von Versuchen angemeckert.
Das Auto stand im 3.UG und war nicht erreichbar, da hat wohl die Software zu oft wiederholt.

VG Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Rewe2000

Hallo gadget,

ich hoffe du liest hier noch mit und kannst mir noch einen Tipp zur KIA Connect Abfrage für Fhem geben, diese läuft bei mir seit Ende Juni 23 nicht mehr. Bis zu diesem Zeitpunkt hat die Abfrage bei mir auf einem Raspi4 (8 GB SSD) perfekt funktioniert. Grundsätzlich habe ich die Abfrage so wie von dir in Beitrag #5 nachgebaut, dazwischen liegen "nur" einige Updates von Bluelinky und nodejs.

Irgendwie bekomme ich keine Daten vom Server, so wie es für mich aussieht sollte der Login mit meinen Benutzerdaten klappen.
Gebe ich direkt auf der Linux Kommandozeile den Abfrageaufruf:
reinhard@Fhem-Bullseye-SSD:~/bluelinky $ cd /home/reinhard/bluelinky
reinhard@Fhem-Bullseye-SSD:~/bluelinky $ node kia.js
reinhard@Fhem-Bullseye-SSD:~/bluelinky $

ein, so kommt überhaupt keine Rückmeldung. Nur die App am Android Handy stellt sich von Deutsch wieder auf Englisch zurück.
Schreibe ich den Usernamen in den Anmeldedaten falsch, so wird ein Fehler angezeigt, das sollte ja auch erwartet werden.

Ich verwende bei Bluelinky die aktuelle Version 8.1.1 und für node und npm folgende Versionen:
reinhard@Fhem-Bullseye-SSD:~/bluelinky $ node -v
v20.5.0
reinhard@Fhem-Bullseye-SSD:~/bluelinky $ npm -v
9.8.1

Linux Bullsey selbst ist aktuell.

Meine kia.js Datei sieht wie folgt aus:
const BlueLinky = require('bluelinky');
const MQTT = require("async-mqtt");

const client = new BlueLinky({
  username: 'Benutzername',
  password: 'Passwort',
  brand: 'kia',
  region: 'EU',
  pin: 'Geheim'
});

client.on('ready', async () => {
  const vehicle = client.getVehicle('Fahrgestellnummer');
  try {
    const odo = await vehicle.odometer();
    console.log(odo);
    const status = await vehicle.status({ parsed: false, refresh: true });
    console.log(status);
    const location = await vehicle.location();
    console.log(location);

    const mqttClient = await MQTT.connectAsync("mqtt://127.0.0.1:1883", { username:"Benutzer-Raspi", password:"Passwort-Raspi" })
    console.log("Sending to MQTT server");
    if ((status.evStatus.batteryStatus > 0) && (odo.value > 0)) {  // wird gelegentlich falsch mit 0 ausgelesen, dann nicht senden
        try {
                var options={
                retain:true,
                qos:1};
                await mqttClient.publish(
                   "BluelinkCarStatus/Fahrgestellnummer",
                   JSON.stringify({
                     odo: odo.value,
                     soc: status.evStatus.batteryStatus,
                     range: status.evStatus.drvDistance[0].rangeByFuel.evModeRange.value,
                     locked: status.doorLock,
                     battery12V: status.battery.batSoc,
                     longitude: location.longitude,
                     latitude: location.latitude,
                   }),options
                );

                // This line doesn't run until the server responds to the publish
                await mqttClient.end();
                // This line doesn't run until the client has disconnected without error
                console.log("mqtt call Done");
        } catch (e){
                // Do something about it!
                console.log(e.stack);
                process.exit();
        }
    } // if
  } catch (err) {
    // log the error from the command invocation
  }
});

client.on('error', async (err) => {
  // something went wrong with login
});
Ich habe diese schon mit der Datei in der Doku verglichen, kann aber selbst keinen Fehler finden.
Ich verwende keine Container und auch kein NodeRed sondern sende die Daten über MQTT nach Fhem. Aber grundsätzlich sollte doch die pure Linux Abfrage mit node zumindest Daten anzeigen.

Meine Anmeldedaten (Benutzer und Passwort) für die Android KIA App und den My KIA Account habe ich gleich angepasst und mich von der App ab und wieder angemeldet, leider ohne Änderung.
Irgendwie stecke ich aktuell fest.
Wäre prima wenn du mir hier noch weiterhelfen könntest.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Eckat

Evtl. hilft es wegen der Sprache in der Client Initialisierung noch
language: 'de'
einzufügen:
const client = new BlueLinky({
  username: 'Benutzername',
  password: 'Passwort',
  brand: 'kia',
  region: 'EU',
  pin: 'Geheim',
  language: 'de'
});

Ich bin kein Javascript Profi, aber man könnte versuchen in dem "catch" Teil und bei "client.on('error' ..." auch etwas in die console zu loggen.
Evtl. sowas:
  } catch (err) {
    console.log(err.stack);
  }
und
client.on('error', async (err) => {
  console.log(err.stack);
});

Dazu macht er bei
client.on('ready', async () => {
  const vehicle = client.getVehicle('Fahrgestellnummer');
  try {
    const odo = await vehicle.odometer();
    console.log(odo);
ja auch schon mit await eine "Aktion" bevor etwas ausgegeben wird.
Evtl. direkt als erstes im "try" Zweig auch eine Ausgabe machen
client.on('ready', async () => {
  const vehicle = client.getVehicle('Fahrgestellnummer');
  try {
    console.log('erste Ausgabe im try-Zweig');
    const odo = await vehicle.odometer();
    console.log(odo);

Wie gesagt, kein Profi in Javascript am Werk  :D

Rewe2000

Hallo Eckat,

danke für die Tipps.
Ich habe versucht diese umzusetzen, meine App stellt jetzt zumindest die Sprache nicht mehr auf englisch um, dies scheint schon mal etwas gebracht zu haben.

Nach hinzufügen der Ausgaben wird zumindest ein Fehler ausgegeben:
reinhard@Fhem-Bullseye-SSD:~/bluelinky $ node kiatest.js
ManagedBluelinkyError: @EuropeController.login: [400] Bad Request on [POST] https://prd.eu-ccapi.kia.com:8080/api/v1/spa/notifications/register - {"retCode":"F","resCode":"4002","resMsg":"Invalid request body - Block the UVO app id.","msgId":"6xx7x3xx-2xxf-4xx9-9xxe-xx6xx7xx36xx"}
    at H (/home/reinhard/bluelinky/node_modules/bluelinky/dist/index.js:17:11700)
    at ne.<anonymous> (/home/reinhard/bluelinky/node_modules/bluelinky/dist/index.js:17:39330)
    at Generator.throw (<anonymous>)
    at a (/home/reinhard/bluelinky/node_modules/bluelinky/dist/index.js:17:136)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
reinhard@Fhem-Bullseye-SSD:~/bluelinky $

Aber ehrlich gesagt zeigen mir auch diese Meldungen keine Lösung für mein Problem, lediglich die Meldung "Block the UVO app id" stimmt mich nachdenklich.
Läuft denn bei dir die Abfrage aktuell noch, oder verwendest du auch nodeRed?

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Eckat

Hmm, das sagt mir so auch nichts.

Bad Request sagt für mein Verständnis aus, dass die Anfrage "falsch/ defekt" war.
Bei mir ist auch bluelinky in 8.1.1. installiert und funktioniert.

Das mit dem "Block the UVO app id" klingt komisch. So als ob über die API die Anfragen für deine ID gesperrt wurden.
Kia/ Hyundai macht das wohl, wenn zu viele Anfragen zu schnell hintereinander kommen.

Ohne Fehler bekomme ich bei mir leider keine analoge Ausgabe um da irgendwas zu prüfen.  :(

Evtl. bei GitHub beim Entwickler von Bluelinky nachfragen?
https://github.com/Hacksore/bluelinky

Rewe2000

Hallo Eckat,

ich habe eben Bluelinky und nodejs auf meinem Raspi4 komplett entfernt und dann alles neu installiert. Aktuell verwende ich die node Version v20.5.0 und npm Version 9.8.0.
Hast du die gleichen Versionen im Einsatz?
Ich bin auch auf ältere Versinen gegangen, jedoch ohne irgendwelchen sichtbaren Erfolg (auch die weiter unten beschriebenen Warnmeldungen tauchen hier ebenso auf).

Bei der Installation der Prozesssteuerung von nodejs kommt bei mir folgende Warnmeldung:
reinhard@Fhem-Bullseye-SSD:~ $ sudo npm install pm2 -g
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

changed 158 packages in 15s

12 packages are looking for funding
  run `npm fund` for details

Nach Ausführung von npm fund (wie vorgeschlagen) wird folgendes ausgegeben:
reinhard@Fhem-Bullseye-SSD:~ $ npm fund
reinhard
├── https://github.com/sponsors/sindresorhus
│   └── clone-response@1.0.3, get-stream@5.2.0, is-stream@2.0.1
├── https://github.com/sponsors/feross
│   └── safe-buffer@5.2.1
└── https://github.com/sponsors/epoberezkin
    └── ajv@6.12.6


Bei der Installation von Bluelinky werden folgende Warnungen angezeigt:
reinhard@Fhem-Bullseye-SSD:~/bluelinky $ npm install bluelinky
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated request-promise@4.2.6: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142

added 132 packages, and audited 133 packages in 15s

5 packages are looking for funding
  run `npm fund` for details

8 vulnerabilities (7 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.


Bei Ausführung von npm audit fix erscheint folgende Ausgabe:
reinhard@Fhem-Bullseye-SSD:~/bluelinky $ sudo npm audit fix

up to date, audited 133 packages in 3s

5 packages are looking for funding
  run `npm fund` for details

# npm audit report

got  <11.8.5
Severity: moderate
Got allows a redirect to a UNIX socket - https://github.com/advisories/GHSA-pfrx-2q88-qq97
No fix available
node_modules/got
  bluelinky  *
  Depends on vulnerable versions of got
  Depends on vulnerable versions of push-receiver
  node_modules/bluelinky

protobufjs  6.10.0 - 7.2.3
Severity: high
protobufjs Prototype Pollution vulnerability - https://github.com/advisories/GHSA-h755-8qp9-cq85
fix available via `npm audit fix`
node_modules/protobufjs

request  *
Severity: moderate
Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6
Depends on vulnerable versions of tough-cookie
No fix available
node_modules/request
  push-receiver  *
  Depends on vulnerable versions of request
  Depends on vulnerable versions of request-promise
  node_modules/push-receiver
  request-promise  >=0.0.2
  Depends on vulnerable versions of request
  Depends on vulnerable versions of request-promise-core
  Depends on vulnerable versions of tough-cookie
  node_modules/request-promise
  request-promise-core  *
  Depends on vulnerable versions of request
  node_modules/request-promise-core

tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
No fix available
node_modules/request-promise/node_modules/tough-cookie
node_modules/request/node_modules/tough-cookie

8 vulnerabilities (7 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

Some issues need review, and may require choosing
a different dependency.

Irgendwie bin ich da zuwenig Linux erfahren, dass ich erkennen könnte wie ich die Meldungen beheben könnte. Gibt es bei dir die Meldungen auch?
Nicht dass hier der Grund liegt, weshalb ich keine Verbindung bekomme. Sollte jemand mitlesen und mir einen Tipp geben können, wie ich die Warnungen beheben könnte wäre das prima.

Installiert habe ich Nodejs wie von Otto vorgeschlagen: https://heinz-otto.blogspot.com/2019/05/installation-nodejs.html

Sollte auch dies mein Problem nicht beheben, so werde ich einen Beitrag im Github Forum bei Bluelinky schreiben.

Gruß Reinhard


Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Eckat

Also ich betreibe das auf einem virtualisierten Ubuntu x86-64 Linux.

npm 9.7.2
node 16.15.0

sudo npm install pm2 -g

npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

added 158 packages in 12s

12 packages are looking for funding
  run `npm fund` for details
npm notice
npm notice New minor version of npm available! 9.7.2 -> 9.8.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.8.1
npm notice Run npm install -g npm@9.8.1 to update!
npm notice

npm fund

bluelinky
├── https://github.com/sponsors/ljharb
│   └── minimist@1.2.8
├── https://github.com/sponsors/isaacs
│   └── glob@7.2.3
├── https://github.com/sponsors/feross
│   └── buffer@5.7.1, base64-js@1.5.1, ieee754@1.2.1, safe-buffer@5.2.1
├── https://opencollective.com/js-sdsl
│   └── js-sdsl@4.3.0
├── https://github.com/sponsors/sindresorhus
│   └── clone-response@1.0.3, get-stream@5.2.0, is-stream@2.0.1
└── https://github.com/sponsors/epoberezkin
    └── ajv@6.12.6

Ich nutze node und npm auch nur für bluelinky.
Daher update ich nur, wenn es nicht mehr funktioniert  :D

Ich hatte bei dem letzten Update vor ca. 1,5 Monaten bei bluelinky irgendwelche Probleme mit Abhängigkeiten etc..
Da bin ich auch nicht schlau draus geworden, aber letztendlich hat mir ncu geholfen.
sudo ncu -u-> https://www.npmjs.com/package/npm-check-updates


Rewe2000

Hallo Eckat,

das soll einer verstehen, seit heute 10:45 Uhr antwortet mir mein KIA wieder, nach über einem Monat "Funkstille", auf Anfragen über Bluelinky, ohne dass ich bewusst etwas geändert hätte.
Hauptsache es geht wieder.

Danke für deine Mühe.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky