Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Skyss Hordaland - Neste avgang home assistant sensor


SaGe

Anbefalte innlegg

Tenkte kanskje noen her ville like dette. Kan ikke se at noen har postet dette før. 

 

Jeg så at skyss tilbyr muligheten til å lage en egen avgansskjerm. Har kan man selv velge hvilke holdeplasser, hvilke busser og hvilken retning som skal vises.

 

https://www.skyss.no/Verdt-a-vite/din-avgangsvisning/

 

Jeg laget min egen avgangsskjerm og fant ut at neste avgang kan tas inn som sensor i homeassistant. 

 

Her er en test screen:

https://avgangsvisning.skyss.no/board/#/?stops=12010023&viewFreq=10000&terminal=true&colors=dark&name=Test1

 

Når man velger Inspect i Chrome finner man kilden til visningen som for denne test visningen er:

https://skyss.giantleap.no/public/departures?Hours=12&StopIdentifiers=12010023&callback=angular.callbacks._1

 

Så fjerner man alt fra og med &callback

https://skyss.giantleap.no/public/departures?Hours=1&StopIdentifiers=12010023

 

Man får da en JSON som kan brukes i en Rest sensor i home assistant.

 

  - platform: rest
    resource: https://skyss.giantleap.no/public/departures?Hours=1&StopIdentifiers=12010023
    name: skysstest
    value_template: '{{ value_json["PassingTimes"][0]["DisplayTime"] }}'

 

Bytter man ut [0] med [1] får man avgangen etter neste avgang.

  • Like 1
Lenke til kommentar
Del på andre sider

Flott!

 

For OpenHAB lagde jeg:

String NesteBybane { http="<[http://skyss.giantleap.no/public/departures?Hours=12&StopIdentifiers=MITTSTOPP:60000:JSONPATH($.PassingTimes[0].DisplayTime)] " }

 

der MITTSTOPP er stoppidenfikatoren man finner som over.

 

WAF += 1

Endret av berland
  • Like 1
Lenke til kommentar
Del på andre sider

  • 2 uker senere...
  • 3 uker senere...

Kjekt å se at tipset mitt hjalp noen ?

 

Jeg har kjøpt meg noen Google Home i USA og også klart å få tidene som svar på Google Home. Kanskje nyttig siden Google Home nå lanseres i Norge.

 

Jeg brukte en IFTTT trigger som sender en http post request med webhooks til Hassio for å starte en script som så sender enn tts til Google Home. Ulempen er at man ikke kun kan sende til den Google Home man har spurt og at musikk avbrytes (og ikke startes igjen) når det kommer en tts fra Hassio. Jeg bare sender alt til Google Home høytaleren som står i gangen siden det er der jeg oftest trenger svaret. Ganske nyttig når man ofte er sent ute ?

Lenke til kommentar
Del på andre sider

Vil bare si takk for tips, husker da jeg måte via to servere for å hente (ikke live) data, dette tok meg 15min å sette opp i OpenHab og WAF øktet mye!

Takk igjen!

(ps, for OpenHab må man ha JSONPath Transformation installert)

  • Like 1
Lenke til kommentar
Del på andre sider

Ser nå at dette ikke funker hvis det er flere rutenr. som går fra holdeplassen. Da viser sensoren kun neste buss, uansett rutenr.

 

Jeg fikset det slik for Fyllingsdalsveien hvor jeg ønsker neste 50E buss:

 

  - platform: rest
    resource: https://skyss.giantleap.no/public/departures?Hours=12&StopIdentifiers=12012101
    name: skyss50E_1
    value_template: >
      {% if value_json["PassingTimes"][0]["RoutePublicIdentifier"] == '50E' %}
      {{ value_json["PassingTimes"][0]["DisplayTime"] }}
      {% elif value_json["PassingTimes"][1]["RoutePublicIdentifier"] == '50E' %}
      {{ value_json["PassingTimes"][1]["DisplayTime"] }}
      {% elif value_json["PassingTimes"][2]["RoutePublicIdentifier"] == '50E' %}
      {{ value_json["PassingTimes"][2]["DisplayTime"] }}
      {% elif value_json["PassingTimes"][3]["RoutePublicIdentifier"] == '50E' %}
      {{ value_json["PassingTimes"][3]["DisplayTime"] }}
      {% elif value_json["PassingTimes"][4]["RoutePublicIdentifier"] == '50E' %}
      {{ value_json["PassingTimes"][4]["DisplayTime"] }}
      {% else %}
      No bus
      {% endif %}

 

Jeg fikk også beskjed om at man kunne bruke en commandline sensor. Men det har jeg ikke fått til ennå. Ifølge en som hjalp meg på  Home Assistant forumet skal det være noe slikt:

 

platform: command_line
command: curl ... | jq '.PassingTimes|map(select(.RoutePublicIdentifier == "50E"))|.[0]'

 

Lenke til kommentar
Del på andre sider

  • 4 måneder senere...

@autoola Det gjør den selv. Visstnok er det slik at når den bytter fra klokkeslett til minutter så er det sporing på når bussen/trikken som gjelder. Når det står klokkeslett så er det rutetid. Ikke helt sikker på dette, men mener jeg har lest det.

 

Lenke til kommentar
Del på andre sider

  • 2 år senere...

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.