OVMS Integration

Moin Zusammen,

ich bräuchte nochmal euer Schwarmwissen … ich bin glaube ich zu blöd …

Ich möchte mein OVMS (Überwachungsmodul für ein Elektrofahrzeug) in HA integrieren. Auf diversen Seiten findet man dazu einige Beschreibungen, welche wohl auch erfolgreich laufen.
Ich habe den unten stehenden Code (Passwörter und Usernamen sind natürlich gesetzt) und in die Config geschrieben. Der Neustart funktioniert tadellos.
Nur ich sehe die Sensoren nicht als Entitäten. Was mache ich falsch oder fehlt noch etwas ?
Danke euch schon mal vorab !
LG Tom

sensor:
  - platform: command_line
    scan_interval: 60
    name: car_charging
    command: |-
      username='xxxxx'; password='xxxxx'; vehicleid='xxxxx'; ip='https://ovms.dexters-web.de:6869';\
      c=$(curl -X GET -sc - "$ip/api/cookie?username=$username&password=$password" -o /dev/null);\
      echo "${c}" | curl -X GET -sb - "$ip/api/status/$vehicleid"
    value_template: "{{ value_json.chargestate }}"
    json_attributes:
      - soc
      - soh
      - vehicle12v_current
      - chargepower
      - chargekwh
      - temperature_cabin
      - temperature_battery
      - charging
      - charge_estimate
      - chargeduration
      - estimatedrange
      - chargetype
      - speed
      - odometer

sensor:
  - platform: command_line
    scan_interval: 60
    name: charge_info
    command: |-
      username='xxxxx'; password='xxxx'; vehicleid='xxxxx'; ip='https://ovms.dexters-web.de:6869';\
      c=$(curl -X GET -sc - "$ip/api/cookie?username=$username&password=$password" -o /dev/null);\
      echo "${c}" | curl -X GET -sb - "$ip/api/charge/$vehicleid"
    value_template: "{{ value_json.chargepower }}"
    json_attributes:
      - linevoltage
      - battvoltage
      - chargecurrent
      - chargepower
      - chargetype
      - chargestate
      - soc
      - units
      - idealrange
      - estimatedrange
      - mode
      - chargelimit
      - chargeduration
      - chargeb4
      - chargekwh
      - chargesubstate
      - chargetimermode
      - chargestarttime
      - chargetimerstale
      - cac100
      - soh
      - charge_etr_full
      - charge_etr_limit
      - charge_limit_range
      - charge_limit_soc
      - cooldown_active
      - cooldown_tbattery
      - cooldown_timelimit
      - charge_estimate
      - charge_etr_range
      - charge_etr_soc
      - idealrange_max
      - cp_dooropen
      - pilotpresent
      - charging
      - caron
      - temperature_pem
      - temperature_motor
      - temperature_battery
      - temperature_charger
      - temperature_ambient
      - temperature_cabin
      - carawake
      - staletemps
      - staleambient
      - charging_12v
      - vehicle12v
      - vehicle12v_ref
      - vehicle12v_current

:crayon:by HarryP: Codezeilen formatiert (bitte immer über </> einbinden)

Moin Zusammen,

mit etwas recherieren und Unterstützung von Dexter habe ich es geschafft, das OVMS in HA einzubinden. Ich hatte zunächst Sonderzeichen im Passwort, deswegen wurden mir die Sensoren nicht angezeigt. Es gibt wohl die Möglichkeit, dass irgenwie noch umzuwandeln, aber das hatte ich nicht hin bekommen. Aber so läuft es erst mal…
Damit bin schon glücklich.
Hier der Programmcode:


#OVMS <Fahrzeugname>
command_line :
     - sensor:
         scan_interval: 60
         name: car_charging-<Fahrzeugname>
         unique_id: "car_charging_<Fahrzeugname>"
         command: |-
             username='XXXXXXXX'; password='XXXXXXXX'; vehicleid='XXXXXXXX'; ip='https://ovms.dexters-web.de:6869';\
             c=$(curl -X GET -sc - "$ip/api/cookie?username=$username&password=$password" -o /dev/null);\
             echo "${c}" | curl -X GET -sb - "$ip/api/status/$vehicleid"
         value_template: "{{ value_json.chargestate }}"
         json_attributes:
          - soc
          - soh
          - vehicle12v_current
          - chargepower
          - chargekwh
          - temperature_cabin
          - temperature_battery
          - charging
          - charge_estimate
          - chargeduration
          - estimatedrange
          - chargetype
          - speed
          - odometer

     - sensor: 
         scan_interval: 60
         name: charge_info_<Fahrzeugname>
         unique_id: "charge_info_<Fahrzeugname>"
         command: |-
           username='XXXXXXXX'; password='XXXXXXXX'; vehicleid='XXXXXXXX'; ip='https://ovms.dexters-web.de:6869';\
           c=$(curl -X GET -sc - "$ip/api/cookie?username=$username&password=$password" -o /dev/null);\
           echo "${c}" | curl -X GET -sb - "$ip/api/charge/$vehicleid"
         value_template: "{{ value_json.chargepower }}"
         json_attributes:
          - linevoltage
          - battvoltage
          - chargecurrent
          - chargepower
          - chargetype
          - chargestate
          - soc
          - units
          - idealrange
          - estimatedrange
          - mode
          - chargelimit
          - chargeduration
          - chargeb4
          - chargekwh
          - chargesubstate
          - chargetimermode
          - chargestarttime
          - chargetimerstale
          - cac100
          - soh
          - charge_etr_full
          - charge_etr_limit
          - charge_limit_range
          - charge_limit_soc
          - cooldown_active
          - cooldown_tbattery
          - cooldown_timelimit
          - charge_estimate
          - charge_etr_range
          - charge_etr_soc
          - idealrange_max
          - cp_dooropen
          - pilotpresent
          - charging
          - caron
          - temperature_pem
          - temperature_motor
          - temperature_battery
          - temperature_charger
          - temperature_ambient
          - temperature_cabin
          - carawake
          - staletemps
          - staleambient
          - charging_12v
          - vehicle12v
          - vehicle12v_ref
          - vehicle12v_current
          
     - sensor:
         scan_interval: 60
         name: car_location-<Fahrzeugname>
         unique_id: "car_location_<Fahrzeugname>"
         command: |-
           username='XXXXXXXX'; password='XXXXXXXX'; vehicleid='XXXXXXXX'; ip='https://ovms.dexters-web.de:6869';\
           c=$(curl -X GET -sc - "$ip/api/cookie?username=$username&password=$password" -o /dev/null);\
           echo "${c}" | curl -X GET -sb - "$ip/api/location/$vehicleid"
         value_template: "{{ value_json.location }}"
         json_attributes:
          - altitude
          - direction
          - drivemode
          - energyrecd
          - energyused
          - gpslock
          - invefficiency
          - invpower
          - latitude
          - longitude
          - power
          - speed
          - stalegps
          - tripmeter

LG Tom

2024.04.06_005

Kann mir jemand sagen, wie ich die Attribute formartiert bekomme (evtl im Yaml Code) ?
z.B. muss Odometer nicht “581486” km sein, sondern “58148,6” km
und bei der Termperature battery würde ich gerne nur eine Stelle nach dem Komma haben.

Danke schon mal vorab !

LG Tom

:crayon:by HarryP: Zusammenführung Doppelpost (bitte „bearbeiten“ Funktion nutzen)

…hat denn niemand einen Tipp für mich ?

LG Tom

Hi
also eine möglichkeit sind Templates

# https://www.home-assistant.io/integrations/template
template:
  - sensor:
      - name: "Twizy Batterie Health"
        unit_of_measurement: "%"
        # https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes
        state_class: measurement
        # https://www.home-assistant.io/integrations/sensor#device-class
        device_class: battery
        state: >
            {{ state_attr('sensor.charge_info_twizy','soh') }}
  - sensor:
      - name: "Twizy Kilometerstand"
        unit_of_measurement: "km"
        state_class: measurement
        device_class: distance
        state: >            
            {{ state_attr('sensor.car_charging_twizy','odometer') |int /10 }}

Das kann das So aussehn