Gå til innhold
  • Bli medlem

Anbefalte innlegg

Skrevet

Har en VD for søppeltømming. Value=1 viser inneværende uke, value=2 viser neste uke og value=3 viser om 2 uker. 

 

I HSTouch vil jeg vise inneværende uke, men ha en knapp for å "bla" gjennom ukene. Dvs i praksis endre status med +1 og ved value=3 sette den til 1. 

 

Må vel bruke hs.devicevalue("tommeplan") for å hente nåværende verdi og hs.setdevicevalue("tommeplan", nyValue) for å oppdatere, men er litt fersk i dette språket, så litt usikker på hvordan bygge opp scriptet. Også usikker på hvordan jeg kjører scriptet i HSTouch... Noen som kan hjelpe meg? :) 

Skrevet

Klart dette er mulig å få til! Men det er litt jobb (spesielt hvis du skal gjøre det litt kult), så vi begynner med en liten runde avklaringsspørsmål:

- Når du oppdaterer devicevalue skal du da oppdatere søppeltømmingen også?

- I så fall: Hvordan gjøres det?

 

... ellers hadde jeg ikke forkortet "virtual device" med VD fordi det oftest har en annen betydning... ;)

Skrevet
  Moskus skrev (På 8.8.2016 den 19.35):

Klart dette er mulig å få til! Men det er litt jobb (spesielt hvis du skal gjøre det litt kult), så vi begynner med en liten runde avklaringsspørsmål:

- Når du oppdaterer devicevalue skal du da oppdatere søppeltømmingen også?

- I så fall: Hvordan gjøres det?

Ekspander  

 

Vet ikke om jeg helt skjønte spørsmålet, så skal heller prøve å forklare hva jeg har gjort (så kanskje svaret ligger i forklaringen :P). 

 

Har et bash-script som trigges av en event natt til mandag. Den tar screenshot av tømmeplanen og lagrer 3 bilder i HS-mappa: trv-1.png, trv-2.png og trv-3.png. Så har jeg laget en virtual device med 3 statuser som er koblet mot hvert sitt bilde. Hele hensikten med devicen er å vise statusbilde på HSTouch, så den skal ikke brukes til å trigge noe event og det spiller ingen rolle hvilken status den er satt til. 

 

Vet ikke om det svarte på det du lurte på?

 

  Moskus skrev (På 8.8.2016 den 19.35):

... ellers hadde jeg ikke forkortet "virtual device" med VD fordi det oftest har en annen betydning... ;)

Ekspander  

 

Hmm, jeg tror vi ferdes på forskjellig deler av Internett, for de nettstedene jeg besøker har aldri brukt den forkortelsen ;) 

Skrevet

 

  ZoRaC skrev (På 9.8.2016 den 6.07):

Har et bash-script som trigges av en event natt til mandag. Den tar screenshot av tømmeplanen og lagrer 3 bilder i HS-mappa: trv-1.png, trv-2.png og trv-3.png. Så har jeg laget en virtual device med 3 statuser som er koblet mot hvert sitt bilde. Hele hensikten med devicen er å vise statusbilde på HSTouch, så den skal ikke brukes til å trigge noe event og det spiller ingen rolle hvilken status den er satt til. 

Ekspander  

Aha, dette burde vi kunne løse greit. :)

Skal rote litt i scripts mappa mi og finne det som ligner mest, slik at omskrivingen blir minst. ;)

 

Jeg tenker som følger:

- Devicen lagrer tallet 1, 2 eller 3 (i DeviceValue)

- Legger til to knapper for å bla opp eller ned.

- Knappene trekker fra eller legger til 1 til den gjeldene verdi, men setter maks 3 og min 1. (Da kan vi også velge om hvis verdien er 3 og man trykker på "+" om verdien skal settes til 1 ("wrappe rundt") eller om den skal forbli 3. Samme for "-".)

- Når en knapp trykkes, oppdateres verdien ihht regimet over, og device'n kan oppdater DeviceString til å vise bildet over.

 

 

  ZoRaC skrev (På 9.8.2016 den 6.07):

Hmm, jeg tror vi ferdes på forskjellig deler av Internett, for de nettstedene jeg besøker har aldri brukt den forkortelsen ;)

Ekspander  

Tror ikke jeg hadde brukt den forkortelsen på engelsk i noen deler av internett, og ferdig med det. Friends klarte jo å få forkortelsen kjent i ikke-engelskspråklige land også for 90-talls ungdommen.

 

Dessuten gir det ikke noe mer informasjon å bruke begrepet "virtuell device" istedenfor bare "device". ;) 

Skrevet
  Moskus skrev (På 9.8.2016 den 6.36):

Aha, dette burde vi kunne løse greit. :)

Skal rote litt i scripts mappa mi og finne det som ligner mest, slik at omskrivingen blir minst. ;)

 

Jeg tenker som følger:

- Devicen lagrer tallet 1, 2 eller 3 (i DeviceValue)

- Legger til to knapper for å bla opp eller ned.

- Knappene trekker fra eller legger til 1 til den gjeldene verdi, men setter maks 3 og min 1. (Da kan vi også velge om hvis verdien er 3 og man trykker på "+" om verdien skal settes til 1 ("wrappe rundt") eller om den skal forbli 3. Samme for "-".)

- Når en knapp trykkes, oppdateres verdien ihht regimet over, og device'n kan oppdater DeviceString til å vise bildet over.

Ekspander  

Høres ut som akkurat det jeg er på jakt etter! :D 

Jeg tror ikke det er det mest kompliserte scriptet, men er fersk i både HS og med VB.NET, så da blir til og med små enkle ting litt vrien...

 

  Moskus skrev (På 9.8.2016 den 6.36):

Tror ikke jeg hadde brukt den forkortelsen på engelsk i noen deler av internett, og ferdig med det. Friends klarte jo å få forkortelsen kjent i ikke-engelskspråklige land også for 90-talls ungdommen.

Ekspander  

Jeg var jo midt i målgruppen og en stor fan av Friends, men akkurat dette husket jeg faktisk ikke. Mulig jeg ikke festet meg så godt med forkortelsen den gangen og bare fulgte med på tekstingen :P

 

  Moskus skrev (På 9.8.2016 den 6.36):

Dessuten gir det ikke noe mer informasjon å bruke begrepet "virtuell device" istedenfor bare "device". ;) 

Ekspander  

Device KAN jo bety en fysisk enhet da, men i denne settingen så er det kanskje ikke så sannsynlig at jeg snakker om en device som tømmer søppla for meg...så du har et poeng. :) 

Skrevet
  ZoRaC skrev (På 9.8.2016 den 6.46):

Jeg tror ikke det er det mest kompliserte scriptet, men er fersk i både HS og med VB.NET, så da blir til og med små enkle ting litt vrien...

Ekspander  

Det er enkelt å lage et script som oppdaterer bildet på en device. Det som krever litt mer knote-kode er knappen, men det er også det som gjør det stilig... ;) 

Skrevet
  Hilmar skrev (På 9.8.2016 den 16.47):

Har noen sniffet seg fram til APIet til «Min renovasjon»-appen? Hadde vært greit å laste ned tømmeplanen der...

Ekspander  

Kikket på appen nå, men ser ut til at den ikke støtter så mange kommuner? Hvis din kommune har en webbasert tømmeplan, så kan det hende du kan gjøre som meg (se "hva har du gjort i dag"-tråden for beskrivelse). 

Skrevet

Jepp, fant webbasert plan etter litt graving på mobilwebben til folloren.no. Skal sjekke mer når jeg kommer hjem til ordentlig browser. Har lyst til å ta vare på datoverdiene for å enkelt lage varsler, så håper på en JSON service eller lignende i bakgrunnen.

Sent fra min H60-L04 via Tapatalk

Skrevet

Folloren bruker en JSON webservice levert av Norkart for å servere hentedatoer for avfall og papir. Det ser ut som at den dekker hele landet, men alle kommuner har sikkert ikke tatt den i bruk.

 

Det er tydelig at de ikke vil at den skal brukes utenfor de designerte websidene, men med litt fikling med HTTP-headers så går det greit å laste ned data fra den.

 

 

Skrevet
  Hilmar skrev (På 13.8.2016 den 17.21):

Folloren bruker en JSON webservice levert av Norkart for å servere hentedatoer for avfall og papir. Det ser ut som at den dekker hele landet, men alle kommuner har sikkert ikke tatt den i bruk.

Ekspander  

... har du en link?

Skrevet (endret)

Jeg kjørte søket først fra folloren.no sine sider:

http://www.folloren.no/toemmedager-og-sortering-av-avfall.342505.no.html

 

Deretter brukte jeg "Utviklerverktøy" i Firefox for å se på kommunikasjonen i et virkelig søk (huset mitt)

 

Så klippet jeg ut headeren fra AJAX-kallet fra nettside-søket inn i headeren til det direkte tjenestekallet (kunne sikkert prøvd meg fram, men var lat :)). Bl.a er det en application key og et kommunenummer som jeg tipper må med. Mulig også Referer og Kommunenr, selv om den også er med i query-stringen.

 

Gatekode ser ut til å referere til vegnummerdelen i vegrefereransen til gata di. Altså kun vegnummer uten RV, FV, eller KV foran. Du kan finne ditt vegnummer i vegkartet/NVDB i SVVs karttjeneste her:

https://www.vegvesen.no/vegkart

 

URLen til tømme-tjenesten blir da følgende følgende:

https://komteksky.norkart.no/komtek.renovasjonwebapi/api/tommekalender/?kommunenr=[DITTKOMMUNENR]&gatenavn=[GATENAVNETDITTHER]&gatekode=[DITTVEGNUMMERHER]&husnr=24B

 

Request-header som fungerte:

Host: komteksky.norkart.no
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: nb-NO,nb;q=0.9,no-NO;q=0.8,no;q=0.6,nn-NO;q=0.5,nn;q=0.4,en-US;q=0.3,en;q=0.1
Accept-Encoding: gzip, deflate, br
Kommunenr: 217
RenovasjonAppKey: AE13DEEC-804F-4615-A74E-B4FAC11F0A30
Content-Type: application/json; charset=UTF-8;
Referer: https://komteksky.norkart.no/komtek.renovasjonwebapi/api/tommekalender/?kommunenr=217&gatenavn=[DITTGATENAVNHER] &gatekode=[DINGATEKODE]&husnr=24B
Connection: keep-alive

 

Edit: glemte resultatet...

 

[{"FraksjonId":1,"Tommedatoer":["2016-08-24T00:00:00","2016-09-07T00:00:00"]},

{"FraksjonId":2,"Tommedatoer":["2016-09-14T00:00:00","2016-10-13T00:00:00"]},

{"FraksjonId":7,"Tommedatoer":["2016-09-14T00:00:00","2016-10-13T00:00:00"]}]

 

Henholdsvis tømming av restavfall (fraksjonsid 1) og tømming av papir og plast

Endret av Hilmar
  • Like 1
  • 1 år senere...
Skrevet
  Hilmar skrev (På 15.8.2016 den 17.36):

Jeg kjørte søket først fra folloren.no sine sider:

http://www.folloren.no/toemmedager-og-sortering-av-avfall.342505.no.html

 

Deretter brukte jeg "Utviklerverktøy" i Firefox for å se på kommunikasjonen i et virkelig søk (huset mitt)

 

Så klippet jeg ut headeren fra AJAX-kallet fra nettside-søket inn i headeren til det direkte tjenestekallet (kunne sikkert prøvd meg fram, men var lat :)). Bl.a er det en application key og et kommunenummer som jeg tipper må med. Mulig også Referer og Kommunenr, selv om den også er med i query-stringen.

 

Gatekode ser ut til å referere til vegnummerdelen i vegrefereransen til gata di. Altså kun vegnummer uten RV, FV, eller KV foran. Du kan finne ditt vegnummer i vegkartet/NVDB i SVVs karttjeneste her:

https://www.vegvesen.no/vegkart

 

URLen til tømme-tjenesten blir da følgende følgende:

https://komteksky.norkart.no/komtek.renovasjonwebapi/api/tommekalender/?kommunenr=[DITTKOMMUNENR]&gatenavn=[GATENAVNETDITTHER]&gatekode=[DITTVEGNUMMERHER]&husnr=24B

 

Request-header som fungerte:

Host: komteksky.norkart.no
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: nb-NO,nb;q=0.9,no-NO;q=0.8,no;q=0.6,nn-NO;q=0.5,nn;q=0.4,en-US;q=0.3,en;q=0.1
Accept-Encoding: gzip, deflate, br
Kommunenr: 217
RenovasjonAppKey: AE13DEEC-804F-4615-A74E-B4FAC11F0A30
Content-Type: application/json; charset=UTF-8;
Referer: https://komteksky.norkart.no/komtek.renovasjonwebapi/api/tommekalender/?kommunenr=217&gatenavn=[DITTGATENAVNHER] &gatekode=[DINGATEKODE]&husnr=24B
Connection: keep-alive

 

Edit: glemte resultatet...

 

[{"FraksjonId":1,"Tommedatoer":["2016-08-24T00:00:00","2016-09-07T00:00:00"]},

{"FraksjonId":2,"Tommedatoer":["2016-09-14T00:00:00","2016-10-13T00:00:00"]},

{"FraksjonId":7,"Tommedatoer":["2016-09-14T00:00:00","2016-10-13T00:00:00"]}]

 

Henholdsvis tømming av restavfall (fraksjonsid 1) og tømming av papir og plast

Ekspander  

 

Er det noen som har laget et script e.l som faktisk får disse tømmedatoene tilgjengelig i HomeSeer? Ønsker å lage varsler om tømming av søpla, men har dessverre ikke nok greie på programmering til at jeg kommer meg noe videre med denne informasjonen...  Tror jeg skal komme meg i mål hvis noen har et script som bare henter ut de tilgjengelige datoene for restavfall, papir&plast osv..?

  • Like 1
  • 1 år senere...
Skrevet
  Hilmar skrev (På 15.8.2016 den 17.36):

Jeg kjørte søket først fra folloren.no sine sider:

http://www.folloren.no/toemmedager-og-sortering-av-avfall.342505.no.html

 

Deretter brukte jeg "Utviklerverktøy" i Firefox for å se på kommunikasjonen i et virkelig søk (huset mitt)

 

Så klippet jeg ut headeren fra AJAX-kallet fra nettside-søket inn i headeren til det direkte tjenestekallet (kunne sikkert prøvd meg fram, men var lat :)). Bl.a er det en application key og et kommunenummer som jeg tipper må med. Mulig også Referer og Kommunenr, selv om den også er med i query-stringen.

 

Gatekode ser ut til å referere til vegnummerdelen i vegrefereransen til gata di. Altså kun vegnummer uten RV, FV, eller KV foran. Du kan finne ditt vegnummer i vegkartet/NVDB i SVVs karttjeneste her:

https://www.vegvesen.no/vegkart

 

URLen til tømme-tjenesten blir da følgende følgende:

https://komteksky.norkart.no/komtek.renovasjonwebapi/api/tommekalender/?kommunenr=[DITTKOMMUNENR]&gatenavn=[GATENAVNETDITTHER]&gatekode=[DITTVEGNUMMERHER]&husnr=24B

 

Request-header som fungerte:

Host: komteksky.norkart.no
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: nb-NO,nb;q=0.9,no-NO;q=0.8,no;q=0.6,nn-NO;q=0.5,nn;q=0.4,en-US;q=0.3,en;q=0.1
Accept-Encoding: gzip, deflate, br
Kommunenr: 217
RenovasjonAppKey: AE13DEEC-804F-4615-A74E-B4FAC11F0A30
Content-Type: application/json; charset=UTF-8;
Referer: https://komteksky.norkart.no/komtek.renovasjonwebapi/api/tommekalender/?kommunenr=217&gatenavn=[DITTGATENAVNHER] &gatekode=[DINGATEKODE]&husnr=24B
Connection: keep-alive

 

Edit: glemte resultatet...

 

[{"FraksjonId":1,"Tommedatoer":["2016-08-24T00:00:00","2016-09-07T00:00:00"]},

{"FraksjonId":2,"Tommedatoer":["2016-09-14T00:00:00","2016-10-13T00:00:00"]},

{"FraksjonId":7,"Tommedatoer":["2016-09-14T00:00:00","2016-10-13T00:00:00"]}]

 

Henholdsvis tømming av restavfall (fraksjonsid 1) og tømming av papir og plast

Ekspander  

Hei, 

Vriker dette enda ? 

 

  • 6 måneder senere...
Skrevet

@Moskuseller @ZoRaC

Hvordan bruker få dette inn i Homeseer ? 

Har bekreftet at dette virker på min adresse via en restapi tester. Men trenger et spark i riktig rettning på hvordan man kan få dette inn i Homeseer. 
Script / plugin / MQTT ?? 

 

På forhånd takk :)

Skrevet
  Moskus skrev (På 8.10.2019 den 13.05):

Tror du må minne oss på hva "dette" er og hvordan det ser ut... ;) 

Ekspander  

he he. Kan jo det :D

 

Min Renovasjon bruker also et RestAPI. Testet I Chrome: 

 

GET /komtek.renovasjonwebapi/api/tommekalender/?kommunenr=0710&gatenavn=bl%C3%A5b%C3%A6rveien&gatekode=45024&husnr=16 HTTP/1.1
Kommunenr: 0710
RenovasjonAppKey: AE13DEEC-804F-4615-A74E-B4FAC11F0A30
Host: komteksky.norkart.no
 
Da får jeg : 
[
    {
        "FraksjonId": 2,
        "Tommedatoer": [
            "2019-10-14T00:00:00",
            "2019-11-04T00:00:00"
        ]
    },
    {
        "FraksjonId": 3,
        "Tommedatoer": [
            "2019-10-14T00:00:00",
            "2019-10-21T00:00:00"
        ]
    },
    {
        "FraksjonId": 4,
        "Tommedatoer": [
            "2019-10-21T00:00:00",
            "2019-12-02T00:00:00"
        ]
    },
    {
        "FraksjonId": 7,
        "Tommedatoer": [
            "2019-10-21T00:00:00",
            "2019-11-11T00:00:00"
        ]
    },
    {
        "FraksjonId": 1,
        "Tommedatoer": [
            "2019-10-28T00:00:00",
            "2019-11-18T00:00:00"
        ]
    }
]
 
 
Spørsmålet var; Hvordan får jeg denne informasjonene inn i Homeseer ? 
 

 

 

Skrevet

Det beste "sparket" i riktig retning tror jeg er her: 

Du kan begynne med å hardkode deviceREf til det nummeret du har fått for en virtuell device, og så endre url'en i neste linje (bare erstatt hele greia).

 

Selve "tolkningen" av JSON-strengen skjer her:

            Dim json = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object)(source)
            Dim output As String = ""
            For i As Integer = 0 To 4
                output &= "• <b>" & json("items")(i)("title") & "</b><br>"
                output &= json("items")(i)("description") & "<br><br>"
            Next

... det som står her er at det lages først et JSON-objekt, og deretter ser jeg etter "items" med index 0 til 4 (altså totalt 5), og henter ut "title" og "description".

 

Skrevet
  Moskus skrev (På 8.10.2019 den 13.51):

... det som står her er at det lages først et JSON-objekt, og deretter ser jeg etter "items" med index 0 til 4 (altså totalt 5), og henter ut "title" og "description".

Ekspander  

Da er jeg igang. Får denne tilbake

Da har jeg dette script: 

Sub Main(ByVal parameters As Object)
        'Moskus 2019
        Dim devID As Integer = parameters.ToString.Split("|")(0)
        Dim url As String = "https://komteksky.norkart.no/komtek.renovasjonwebapi/api/tommekalender/?kommunenr=0710&gatenavn=bl%C3%A5b%C3%A6rveien&gatekode=45024&husnr=16"

        Dim source As String = ""
        Try
            Using client As New System.Net.WebClient
                'Sette Headers 
		client.headers.set("Kommunenr", "0710")
		client.headers.set("RenovasjonAppKey", "AE13DEEC-804F-4615-A74E-B4FAC11F0A30")
		Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12
                client.Encoding = System.Text.Encoding.UTF8
                source = client.DownloadString(url)
            End Using
        Catch ex As Exception
            hs.WriteLog("Soppel Error", "Net Feil: " & ex.Message)
        End Try

        If source = "" Then
            hs.WriteLog("soppel Error", "Got no response from url: " & url)
            Exit Sub
        End If


        Try
            hs.WriteLog("Soppel debug", source )
            Dim json = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object)(source)
            '
            Dim output As String = ""
            For i As Integer = 1 To 4
                output &= "• <b>" & json("")(i)("Tommedatoer") & "</b><br>"
                dim temp as string = output
                hs.WriteLog("Soppel debug", temp)
                output &= json("FraksjonId")(i)("Tommedatoer") & "<br><br>"
            Next

            hs.SetDeviceString(devID, output, True)
        Catch ex As Exception
            hs.WriteLog("Soppel Error", "Net Feil: " & ex.Message)
        End Try
    End Sub

 

Får i loggen : 

okt-14 00:35:02 Soppel ErrorNet Feil: Accessed JArray values with invalid key value: "". Int32 array index expected.

okt-14 00:35:02 Soppel debug[{"FraksjonId":2,"Tommedatoer":["2019-10-14T00:00:00","2019-11-04T00:00:00"]},{"FraksjonId":3,"Tommedatoer":["2019-10-14T00:00:00","2019-10-21T00:00:00"]},{"FraksjonId":4,"Tommedatoer":["2019-10-21T00:00:00","2019-12-02T00:00:00"]},{"FraksjonId":7,"Tommedatoer":["2019-10-21T00:00:00","2019-11-11T00:00:00"]},{"FraksjonId":1,"Tommedatoer":["2019-10-28T00:00:00","2019-11-18T00:00:00"]}]

 

Ser ut som Get på rest API er OK. Men tolkningen av Json som kommer tilbake ikke er riktig. Trenger et nytt spark eller tips for å komme videre :)

Skrevet
  Moskus skrev (På 14.10.2019 den 7.51):

Dette:

json("FraksjonId")(i)("Tommedatoer")

gir også en "array". Prøv med:

json("FraksjonId")(i)("Tommedatoer")(0)

 

Ekspander  

Forsatt Net Feil: Accessed JArray values with invalid key value: "FraksjonId". Int32 array index expected.

Noen flere tips ?  

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.