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

larsi70

Medlemmer
  • Innlegg

    28
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    2

Innlegg skrevet av larsi70

  1. Fantastisk å lese @Alexus! Dette er akkurat grunnen til at jeg tok meg tiden til å skrive "guiden". Noe av det begynner kanskje å bli utdatert nå, mitt oppsett har kjørt feilfritt over lengre tid nå. 

     

    Har et par ting på ønskelisten, dog, som jeg kan dele om du føler for å utvikle videre en dag..

     

    - Støtte for Influxdb 2.x (usikker på hva som egentlig er forskjellen i praksis, men tror "noe" må endres)

    - Tilpasse koden til å kjøre i Python 3.x

    - Mulighet for å velge IT/TN som inputargument til scriptet (eks. --meter_type IT)

    - Mulighet for å lese argumenter fra configfil istede

     

  2. På 18.1.2020 den 15.46, rhesusminus skrev:

    Beregning av fasestrømmer i IT-nett

     

    Målt strøm i1
    Målt strøm i2
    i_l er målt effekt/målt spenning. Jeg tok effekten og delte på gjennomsnittet av fasespenningene. Forskjellen mellom fasene er ganske liten.

    Denne utregnigen tar ikke hensyn til reaktiv effekt. Feilen blir minimal hos meg.


                x = (-pow(i_l,2)*(pow(i1,4) - 2*pow(i1,2)*pow(i2,2) - 2*pow(i1,2)*pow(i_l,2) + pow(i2,4) - 2*pow(i2,2)*pow(i_l,2) + pow(i_l,4)))
                if (x >= 0):            
                    fields['ip1'] = (0.166667*(3*pow(i1,2)*i_l - 1.73205*math.sqrt(x) - 3*pow(i2,2)*i_l + 3*pow(i_l,3))/pow(i_l,2))
                    fields['ip3'] = (0.166667*(-3*pow(i1,2)*i_l - 1.73205*math.sqrt(x) + 3*pow(i2,2)*i_l + 3*pow(i_l,3)))/pow(i_l,2) 
                x = (-pow(i_l,2)*(pow(i1,4) - 2*pow(i2,2)*pow(i1,2) - 2*pow(i_l,2)*pow(i1,2) + pow(i2,4) + pow(i_l,4) - 2*pow(i2,2)*pow(i_l,2)))
                if (x >= 0): 
                    fields['ip2'] = (0.57735*math.sqrt(x))/pow(i_l,2)

     

    Det glitcher litt når det er store endringer i strømmen, det tror jeg er noe med rapporteringen fra Aidon. Ellers funker det greit.

     

    grafana.jpg

     

    Kan du forklare meg hvordan du legger dette inn i Grafana?

  3. På 29.1.2020 den 19.44, Nexst skrev:

    kanskje jeg må bytte om på paret? eller skal ikke det ha noe å si?

     

     

    Hei, såvidt jeg har skjønt skal det ikke ha noe å si, mener også at jeg har prøvd begge veier med samme resultat..

     

    Da kan det hende du får noe ut, kan du dumpe outputen fra test-scriptet? Har du satt opp Influx, og hva sier loggen der? Hos meg logges ihvertfall alt som kommer fra måleren.

  4. Hei, driver å setter opp HomeAssistant, og har sett på dette kortet. Jeg har flere forskjellige busser som går fra nærmeste stopp og vil derfor ha flere linjer på dette stoppet. Det har jeg definert i config, so far so good. 

     

    Men i kortet ser det ut for meg som at "show_extra_departures: true" hopper over 2. neste avgang hvis jeg samtidig setter "show_next: false", da får jeg feks de 5 neste avgangene listet opp, bortsett fra "neste" avgang, om det gir mening.. 

  5. 37 minutter siden, Nexst skrev:

    Veldig bra dette, og begynner å nærme meg.

    har gjort alt etter oppskriften, tror jeg.

     

    men eneste data jeg klarer å hente ut er:

    Volt L1 viser 230, l2 og l3 270.

    strøm l1 og 2 viser 400.

     

    ellers får jeg bare NO-DATA

     

    tips?

     

    Jeg mottar data fra porten. rimelig sikker på det.

     

     

    Hei. Scriptet er ikke tilpasset 400V anlegg.

     

    ref: "Guiden er lagt opp for og kun testet på Aidon/Hafslund med 3-fas 230V IT ved bruk av skagmo sine geniale Python-script. Dette kan sannsynligvis skrives om til å fungere på 1 fas 400V TN om man snakker Python."

     

    Men om du vil fikle med scriptet så er det nok ikke all verden som skal til for å tilpasse det ditt bruk..

  6. 21 minutter siden, Helge50 skrev:

    Etter å ha brukt mye tid med hexdump, han-port-1.15 (test_rx) og aidon_foreward.py prøvde jeg node-red med kamstrup noden.  Det fungerte uten problemer.  Dette fungerte både på en raspberry 3+ og 4.

     

    Først installerte jeg rasbian light, koblet til han port osv ihht guide fra larsi70I steden for å bruke python eller han-port-1.15 installerte jeg node-red med kamstrup noden (https://flows.nodered.org/node/node-red-contrib-ams-decoder).  Installerte også docker med influxdb, chronograf og grafana.  

    legger ved node-red flowen som jeg bruker (ikke alle nodene får verdier - mulig en endring i hva som kommer fra Kamstrup måleren) .  MQTT nodene er heller ikke i bruk, men kan jo brukes for å  laste dataene inn i ett eller annet iot rammeverk hvis ønskelig.

    flows.json 355 B · 0 downloads


    Scriptet er skrevet for Aidon og vil ikke fungere for andre målere. Derfor er dette spesifisert i guiden.

  7. 1 minutt siden, Svein Erik Duus skrev:

    Hei.

    Har spurt litt rundt og vært innom diverse forums. Har ingen enkel forklaring på dette. Jeg kjører Debian Buster Light på en RPI 3 B+ og pyton 3,7. Pip3 er installert og pyserial også.

     

    Jeg har ikke vært inne i scriptene og gjort noe som helst. Jeg tenderer til å tenke at dette har med versjoner av python å gjøre, og at disse python oppsettfilene er basert på python 2.7. Jeg er heller ikke stødig på å sette opp script i Python, så hvis det er noen der ute som følger med på dette, hadde det vært fint å høre fra dere.

     

    Jeg ville prøvd å installere de tingene som logges der først, ihvertfall.

     

    Deretter kan du jo prøve å kjøre eldre versjon av Python og se om det gjør noe forskjell. Jeg mener jeg har prøvd litt forskjellig uten problem.

     

    Jeg tenkte mer på at du har alle scriptene plassert i de mappene de skal, siden de er avhengig av hverandre..

  8. På 11.1.2020 den 17.55, Svein Erik Duus skrev:

    Hei Lars. 
    Da har jeg klart å opprette filen han.service. Når jeg nå kjører python-skriptet, får jeg en feilmelding som jeg ikke klarer å finne ut av, og hvor jeg skal lete.

    Her har du utdraget fra meldingen: 
     

    python aidon_forward.py /dev/ttyUSB0 --influx_host http://localhost:8086 --influx_db HAN

    Traceback (most recent call last):

      File "aidon_forward.py", line 3, in <module>

        import serial, time, sys, argparse

    Feilmeldingen henviser til <module> som jeg ikke finner i hverken han.service eller i aidon_forward.py. Har du mulighet til å gi meg en liten orientering?

    mvh Svein Erik

     

    Jeg er som sagt ikke veldig godt kjent med Python.

     

    Men øverst i scriptet du kaller ser du andre avhengigheter som hentes inn

     

    #!/usr/bin/python
       
      import serial, time, sys, argparse
      from hass_influx import *
     

    from aidon_obis import *

     

     

     

    Antar du ikke har rota med de forskjellige scriptene?

     

    Mulig du må installere noen av de modulene som listes opp, sudo pip install (har du gjort den delen av guiden?)

     

  9. 4 timer siden, Svein Erik Duus skrev:

    Hei. Jeg tror jeg er veldig nær et riktig oppsett, men har litt trøbbel med akkurat denne. Jeg kjører SSHFS fra maccer, og maccen har pakket ut denne i egen folder RPI. Er ikke helt stø på Terminal og Python, og jeg får opp følgende svar:
     

    pi@raspberrypi:~ $ python aidon_forward.py /dev/ttyUSB0 --influx_host http://localhost:8086 --influx_db HAN

    python: can't open file 'aidon_forward.py': [Errno 2] No such file or directory

     

    Er det bare å flytte pythonfilen til pi/home eller tilsvarende? Veldig hyggelig om du kan gi meg en pekepinn. Dette har vært en ganske bratt lærekurve for meg.

     

    mvh


    Hei. Når du kjører «python aidon_forward.py» så sier du egentlig at du vil kjøre Python og aidon_forward.py inneholder koden du vil ha utført, når du angir det på denne måten vil shellet ditt anta at filen ligger i samme katalog som du står. Du må med andre ord finne frem til katalogen hvor scriptet ligger for å kjøre det slik. Enten tar du cd inn i katalogen du la scriptet og kjører kommandoen på nytt, eller angir absolutt path til scriptet når du kjører Python. Eks. «Python /opt/meter_reading/aidon_forward.py...» 

     

    (bare du vet nøyaktig hvor du la filene)

     

    nyttige kommandoer:

     

    ls - lister filer og mapper

    cd /path/til/mappe - går inn i mappe

    cd .. - går ned et nivå i mappestruktur 

     

    Dette er ganske basic kommandolinje greier. Man må drive litt med det så går det litt lettere.

  10. 2 timer siden, Moskus skrev:

    Jeg har Aidon, og får strøm på alle faser...

     

    Sist jeg debugget dette leverte ikke min måler strøm på alle faser, jeg har ikke sjekket på nytt, men vet bekjente med Tibber plutselig fikk strøm på alle 3 faser relativt nylig, så jeg antar dette er endret. Scriptet må skrives om for å fungere for dette, og det har jeg ikke gjort noe med enda (det er jo i utgangspunktet ikke mitt).

  11. 6 timer siden, Svein Erik Duus skrev:

    Hei. Har nettopp fått Hafslund til å åpne Han-porten. Skulle gjerne forsøkt ditt opplegg. Tenker å bruke en RPI 3B+ som jeg har satt opp med Buster Light, og som jeg kjører 1wire tempsensorer DS18S20 og DS2413 via i2c og BAOS til KNX. Hvis dette er komplisert, har jeg en ekstra RPI 3B+ som jeg kan gjøre en full Buster-installasjon på og bruke. Fint om du lar høre fra deg. mvh


    Hei, se denne, og si fra om du står fast, opplegget mitt har gått i snart et år og fungerer fremdeles knirkefritt. 

     

     

  12. 2 minutter siden, Robin Smidsrød skrev:

     

    Vel, jeg er vel kanskje litt mer old-school Unix, at man skal lage et verktøy som gjør _en_ oppgave, og gjør den bra, mens du tydligvis foretrekker den andre tankegangen (all-in-one tools).

     

    Forøvrig så ser jeg på koden til meter_reading at den tar litt snarveier som gjør at den _kun_ fungerer med Aidon-målere. Jeg har fokusert (i min kode) på å dekode korrekt, og det krever nødvendigvis mer kode og fler oppslagstabeller.

     

    Programmet mitt har mulighet til å sende meldinger til både Home Assistant (som jeg bruker) eller InfluxDB ved å bruke -p-argumentet (send dekodet melding via standard input til et annet program). Jeg bruker den opsjonen til å sende over MQTT vha. mosquitto_pub, men du kan like gjerne bruke ditt eget program der, som f.eks. konverterer JSON til noe HA skjønner og sende en API-forespørsel til HA om å oppdatere en sensor).

     

    Vel, for en så liten oppgave (les en strøm og konverter til noe forståelig) ser jeg ikke helt problemet med å gjøre det på en plass fremfor å involvere flere forskjellige komponenter, men..

     

    Opplegget ditt er sikkert smidig, og de som ønsker kan sikkert implementere det sammen med min guide, tanken her var imidlertid å gjøre det så enkelt som mulig slik at terskelen ble litt lavere. 

     

    At "meter_reading" kun fungerer på aidon 3-fas 230V er definitivt en svakhet, helt enig der, men jeg har ikke funnet noen bedre alternativer som er såpass enkle.. Jeg er ikke spesielt god på å kode selv så jeg gidder ikke å prøve å skrive det om heller, det funker for meg, og sannsynligvis alle andre med Aidon og 3-fas 230v nett..

    • Like 1
  13. 10 timer siden, Robin Smidsrød skrev:

    Heisann!

     

    Jeg har laget en dekoder som fungerer med den samme MBUS/USB-adapteren du nevner over. Den tar seg _KUN_ av dekoding av seriell-strømmen til JSON, men fungerer med både Aidon, Kamstrup og Kaifa-målere. I tillegg har den en opsjon for å kjøre et program for hver melding, så det er enkelt å lage en systemd unit som bruker f.eks. mosquitto_pub for å sende meldingen til et MQTT-endepunkt. Programmet er skrevet i Perl og skal fungere helt greit på en Raspberry Pi.

     

    Her er linken, hvis det skulle være av interesse: https://github.com/robinsmidsrod/ams-han-decoder

     

    Personlig bruker jeg det til å sende JSON-meldingene over MQTT (bruker mosquitto) til Node-Red, som igjen kverner litt på meldingene og sender de videre til InfluxDB. Deretter bruker jeg Grafana til å visualisere informasjonen lagret i InfluxDB.

     

    -- Robin

     

    Høres fint ut dette, men personlig skjønner jeg ikke helt hvorfor man skal gjøre dette så komplisert, "meter_reading" gjør jo "alt" i én og samme kode så man kan løsrive seg fra MQTT og Node-Red. Jeg syns ihvertfall dette er en stor fordel..

  14. Etter mange timer her på forumet og på Google har jeg satt opp et alternativ til Tibber Pulse basert på Raspberry Pi med MBUS til USB Slave modul. Siden det meste jeg har brukt kommer direkte fra tråder på dette forumet tenker jeg å lage en enkel guide til de som ønsker det samme. For spesielt interesserte anbefaler jeg å sjekke ut HAN-Bus tråden på forumet med tilhørende dokumentasjon

    Guiden forutsetter et visst datateknisk kunnskapsnivå, men de fleste bør kunne oppnå samme resultat om guide følges slavisk. Guiden er lagt opp for og kun testet på Aidon/Hafslund med 3-fas 230V IT ved bruk av skagmo sine geniale Python-script. Dette kan sannsynligvis skrives om til å fungere på 1 fas 400V TN om man snakker Python.

     

    Nødvendig Hardware:
      - Raspberry Pi (jeg bruker 3b+)
        - Minnekort (Micro SD) med plass til OS
        - Micro USB-kabel og USB-adapter som leverer minimum 2A
        - Et eller annet case/kabinett

      - MBUS til USB Slave dings, feks: https://www.aliexpress.com/item/USB-transfer-MBUS-module-slave-module-communication-debug-alternative-TSS721/32719562958.html
      - Vanlig Nettverkskabel
      - Aidon AMS

      Nødvendig software
      - Din favorittdistro, jeg bruker Raspbian (Stretch) Lite: https://www.raspberrypi.org/downloads/raspbian/
      - meter-reading av Skagmo: https://github.com/skagmo/meter_reading
        For visualisering:
          - influxdb
          - Grafana

    1. Forbered MBUS-modulen
      - Kapp av RJ45-kontakten i den ene enden av nettverkskabelen
      - Identifiser pin 1 og 2 (de to første pinnene når du ser på kontakten med kontaktpunktene mot deg) De vil sannsynligvis være Grønn og Grønn/Hvit eller Oransje og Oransje/Hvit.
      - Kapp vekk de øvrige kablene og avmantle kablene som korresponderer med pin 1 og 2.
      - Skru de avmantlede lederne inn i MBUS-modulen (såvidt jeg har forstått har det ingen betydning hvilken kabel som går inn i hvilken terminal)
      - Koble MBUS-Modulen inn i en ledig USB-Port på RPi

    2. Forbered minnekort for OS
      - Last ned Raspbian
      - Skriv til minnekort på en av måtene beskrevet her: https://www.raspberrypi.org/documentation/installation/installing-images/README.md
      - Definer Wifi og skru på SSH, Wifi er valgfritt og avhengig av om du har tilgang til kablet nett der RPi skal stå (Typisk i sikringsskap).
        - Når imaget er skrevet til minnekortet vil dette få navnet "boot", åpne boot/minnekortet og opprett en fil som heter "wpa_supplicant.conf" Legg inn følgende i fila:

        ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
        network={
          ssid="NETTVERKSNAVN"
          psk="PASSORD"
          key_mgmt=WPA-PSK
    }
        Blir dette gjort riktig vil fila bli plukket opp ved oppstart og Raspbian husker nettverksoppsettet.

        - Opprett en helt tom fil på boot/minnekort som heter SSH, dette vil enable SSH ved oppstart.

      3. Start opp og installer nødvendig software
        - Koble RJ45-kontakten på nettverkskabelen inn i HAN-Pluggen på Aidon AMS
        - Sett minnekortet inn i RPi og koble på strøm.
          - Last over meter_reading fra Skagmo til RPi (feks til /tmp og pakk ut til feks /opt)
          - Last ned/installer pip (Pakkehåndering for Python): wget https://bootstrap.pypa.io/get-pip.py
                                                                                                                  python get-pip.py

          - Last ned/installer avhengigheter: sudo pip install pyserial
                                                                        sudo pip install crcmod
                                                                        sudo pip install requests==2.7.0

    Din Raspberry Pi har nå all nødvendig HW og SW for å hente data fra HAN-porten. Videre kan man bruke denne dataen litt forskjellig. Jeg kjører "aidon_forward.py" fra "meter_reading"-pakka som forwarder dataene til influxdb som jeg henter ut grafisk i Grafana.

      4. Installere influxdb og Grafana - Jeg kjører influxdb og Grafana på En egen maskin, men det skal være trivielt å sette opp dette på den samme Raspberry Pien som kjører "meter_reading".
        - Installer influxdb, dette er godt dokumentert på nett. (bruk google)
        - Installer Grafana, dette er også godt dokumentert.
        - Opprett databasen du ønsker å dytta data inn i, dette kan gjøres i GUI eller i kommandolinje. GUI: http://IP_TIL_RPI:8083 kommandolinje: "CREATE DATABASE <db-name>"

      5. Kjøre "meter_reading"
        - For å hente målingene og skrive direkte til influxdb kjører man "aidon_forward.py" mot USB-enheten, normalt vil denne finnes under /dev/ttyUSB0. I motsatt fall må man identifisere denne ved å feks kjøre "ls /dev/ttyUSB*".
          - Eks på kommando for å lese fra HAN og skrive til influx: "python aidon_forward.py /dev/ttyUSB0 --influx_host http://localhost:8086 --influx_db HAN"
          - Jeg har opprettet en unit-fil som gjør at jeg kan kalle på dette som en service, dette gjør også at scriptet kjøres opp ved oppstart ved feks strømstans etc.
            - Opprett en .service-fil under /lib/systemd/system/ kall den feks han.service. Eks. nano /lib/systemd/system/han.service
            - Legg inn nødvendig informasjon. eks:

            [Unit]
            Description=Kjorer HAN-Leser
            After=multi-user.target

            [Service]
            Type=idle
            ExecStart=/usr/bin/python /opt/meter_reading/aidon_forward.py /dev/ttyUSB0 --influx_host http://localhost:8086 --influx_db HAN

            [Install]
            WantedBy=multi-user.target

            - Sørg for at den har riktig rettigheter: "chmod 644 /lib/systemd/system/han.service"
            - Reload systemctl daemon og enable servicen: "systemctl daemon-reload" og "systemctl enable han.service"
            - Start servicen: "systemctl start han" eller restart PIen for å se at det fungerer som det skal: "reboot"

            - De som har installert Raspbian med grafisk grensesnitt opplever at man må legge inn en wait før ExecStart for at servicen skal starte riktig, Eks:  "ExecStartPre=/bin/sleep 5"

      6. Opprette Dashboard i Grafana.
        - Gå til din Grafana-instans. I nettleser gå til http://IP_TIL_RPI:3000
        - Logg inn med bruker: admin og passord: admin (det er åpenbart anbefalt å bytte dette)
        - Legg til datasourcen din:
          - Velg influxDB
          - Gi et navn
          - legg inn URL til influx, feks http://localhost:8086
          - Skriv inn databasenavnet du lagde i punkt 4.
          - Save & Test
        - Opprett dashboard og legg til et "panel". Databasen inneholder data om "power", "voltage", "current" og "energy".

        - Se vedlagt JSON for å importere Grafana-dashboard.
     

     

    AMS-1560577324551.json

    • Like 5
    • Thanks 3
  15. Jeg har akkurat satt opp Aidon fra Hafslund, antar det er samme som Lyse bruker, jeg bruker Python scriptet og sitter å skriver en guide. Én klar fordel er at du slipper å bruke node-red helt og kan bruke det ene Python-scriptet og skrive direkte til basen. Det var en del prøving og feiling, men det har kjørt noen uker nå og virker veldig bra.

     

    Edit: Kanskje du vil være "prøvekanin" for guiden min?

    • Thanks 1
  16. Hei dere ivrige HAN-folk. Jeg har nå satt opp en RPi med USB dongle kobla i HAN-Porten, installert nødvendig Software, satt opp InfluxDB og Grafana på NAS og det jeg tror skal til. Har også bestilt åpning fra Hafslund. Jeg får imidlertid ikke inn data. Jeg mistenker i første omgang at det er Hafslund som er synderen. Hvordan kan jeg feilsøke dette/Hvordan vet jeg om porten er åpnet? 

     

    På MinSide hos Hafslund står det forøvrig bare:

    Bestilt åpning 28.03.2019

     

    Edit: Jeg har Aidon måler

  17. På 21.1.2019 den 19.18, EinarA skrev:

    @larsi70, du har kanske redanlöst det nu, men så här har jag gjort i node-red (som jag är helt ny på). Du får fylla i hållplats och linje i den första funktionen och flowet blir kört på morgonen eller med en  knapp hos mig.

     

     

     

    
    [{"id":"f9c1d0f5.bf33d","type":"function","z":"896d2a66.bbea68","name":"","func":"\nvar msg2 = {};\nmsg2.headers = {}\nmsg2.payload = {query:`{  quay(id: \"NSR:Quay:11013\") {\n      id\n      name\n      estimatedCalls(\n        numberOfDepartures:4, \n        whiteListed:{\n      #nor-way bussespress\n      lines:[\"RUT:Line:76\"]\n    }\n      ){\n    \t\trealtime\n        expectedDepartureTime\n        destinationDisplay {\n          frontText\n        }\n        serviceJourney {\n          line  {\n            transportMode\n            id\n          }\n        }\n      }\n    }\n}`\n}\n\nmsg2.headers['ET-Client-Name'] = 'privat';\nreturn msg2;","outputs":1,"noerr":0,"x":730,"y":300,"wires":[["452c900e.06f1d"]]},{"id":"452c900e.06f1d","type":"http request","z":"896d2a66.bbea68","name":"","method":"POST","ret":"obj","url":"https://api.entur.org/journeyplanner/2.0/index/graphql","tls":"","x":870,"y":300,"wires":[["897ed452.f896b8"]]},{"id":"e5131eb4.16ed3","type":"ui_button","z":"896d2a66.bbea68","name":"","group":"4f5b56ae.16ac28","order":3,"width":"0","height":"0","passthru":false,"label":"Sist {{msg.payload}}","color":"","bgcolor":"","icon":"directions_bus","payload":"","payloadType":"str","topic":"","x":410,"y":500,"wires":[["f9c1d0f5.bf33d","ad3075ab.ed0e68"]]},{"id":"897ed452.f896b8","type":"json","z":"896d2a66.bbea68","name":"","property":"payload","action":"obj","pretty":false,"x":1020,"y":300,"wires":[["9fde5b65.05f7f8"]]},{"id":"9b7bd1ee.90de6","type":"split","z":"896d2a66.bbea68","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"key","x":1290,"y":320,"wires":[["69e44482.3113ec"]]},{"id":"b6f7774a.2e0028","type":"moment","z":"896d2a66.bbea68","name":"time from now","topic":"","input":"payload","inputType":"msg","inTz":"Etc/UTC","adjAmount":0,"adjType":"days","adjDir":"add","format":"fromNow","locale":"C","output":"payload","outputType":"msg","outTz":"Etc/UTC","x":1440,"y":240,"wires":[["819570de.77182"]]},{"id":"9fde5b65.05f7f8","type":"function","z":"896d2a66.bbea68","name":"","func":"\nvar departures = msg.payload.data.quay.estimatedCalls;\nvar msg = {};\nvar msg_stat = {};\nvar times_real = [];\nvar times_stat = [];\nvar times2 = {};\n\nfor (i = 0; i < departures.length; i++) { \n    if (departures[i].realtime == true){\n        times_real.push(departures[i].expectedDepartureTime);\n    }\n    else{\n        times_stat.push(departures[i].expectedDepartureTime);\n    }\n    \n    times2[i] = departures[i].expectedDepartureTime;\n}\n\nmsg.payload = times_real;\nmsg_stat.payload = times_stat;\n//node.warn(msg);\n//node.warn(msg_stat);\n\n\n\n\nreturn [msg, msg_stat];","outputs":2,"noerr":0,"x":1150,"y":300,"wires":[["1a0c43d9.52422c"],["9b7bd1ee.90de6"]]},{"id":"69e44482.3113ec","type":"moment","z":"896d2a66.bbea68","name":"stat","topic":"","input":"payload","inputType":"msg","inTz":"Etc/UTC","adjAmount":0,"adjType":"days","adjDir":"add","format":"HH:mm","locale":"C","output":"payload","outputType":"msg","outTz":"Etc/UTC","x":1410,"y":320,"wires":[["e451c72f.8fa138","b62fc0b5.dd5f6"]]},{"id":"1a0c43d9.52422c","type":"split","z":"896d2a66.bbea68","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"key","x":1290,"y":260,"wires":[["b6f7774a.2e0028"]]},{"id":"e451c72f.8fa138","type":"debug","z":"896d2a66.bbea68","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1830,"y":380,"wires":[]},{"id":"3d16e587.5925da","type":"join","z":"896d2a66.bbea68","name":"","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":" ","joinerType":"str","accumulate":false,"timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1770,"y":240,"wires":[["d27fb416.9f7468","3345ce33.61d242"]]},{"id":"d27fb416.9f7468","type":"debug","z":"896d2a66.bbea68","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1930,"y":180,"wires":[]},{"id":"819570de.77182","type":"function","z":"896d2a66.bbea68","name":"replace words","func":"msg.payload = msg.payload.replace(\"in\", \"\").replace(\" in\", \"\").replace(\"minutes\", \"min\");\nmsg.payload = msg.payload.replace(\"in a few seconds\", \"Now\");\nreturn msg;\n","outputs":1,"noerr":0,"x":1620,"y":240,"wires":[["3d16e587.5925da"]]},{"id":"6d1be87e.74eed8","type":"function","z":"896d2a66.bbea68","name":"","func":"//20 minutes ahead\nvar twentyMinutesLater = new Date();\ntwentyMinutesLater.setMinutes(twentyMinutesLater.getMinutes() + 20);\nreturn msg;","outputs":1,"noerr":0,"x":1530,"y":500,"wires":[[]]},{"id":"4714bf57.ed8e9","type":"function","z":"896d2a66.bbea68","name":"Wait for all tasks to finish","func":"context.data = context.data || new Object();\n\nswitch (msg.topic) {\n    case \"stat\":\n        context.data.task2 = msg.payload;\n        msg = null;\n        break;\n    case \"real\":\n        context.data.task1 = msg.payload;\n        msg = null;\n        break;\n\n    default:\n        msg = null;\n    \tbreak;\n\n}\n\nif(context.data.task1 != null && context.data.task2 != null) {\n\tmsg2 = new Object();\n\tmsg2.payload = context.data.task1  + \" \" + context.data.task2\n\t\n    //msg2 = context.data;\n    context.data=null;\n\treturn msg2;\n} else return msg;","outputs":1,"noerr":0,"x":2130,"y":280,"wires":[["1c2742ec.39ec7d","a5d12620.0e1158"]]},{"id":"3345ce33.61d242","type":"function","z":"896d2a66.bbea68","name":"topic","func":"msg.topic = \"real\";\nreturn msg;","outputs":1,"noerr":0,"x":1910,"y":240,"wires":[["4714bf57.ed8e9"]]},{"id":"dfa3bf58.06446","type":"function","z":"896d2a66.bbea68","name":"topic","func":"msg.topic = \"stat\";\nreturn msg;","outputs":1,"noerr":0,"x":1910,"y":320,"wires":[["4714bf57.ed8e9"]]},{"id":"b62fc0b5.dd5f6","type":"join","z":"896d2a66.bbea68","name":"","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":" ","joinerType":"str","accumulate":false,"timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1770,"y":320,"wires":[["dfa3bf58.06446"]]},{"id":"1c2742ec.39ec7d","type":"debug","z":"896d2a66.bbea68","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":2350,"y":260,"wires":[]},{"id":"a5d12620.0e1158","type":"ui_text","z":"896d2a66.bbea68","group":"4f5b56ae.16ac28","order":4,"width":"6","height":"1","name":"","label":"76:","format":"{{msg.payload}}","layout":"row-left","x":2380,"y":320,"wires":[]},{"id":"78de55d6.814d5c","type":"inject","z":"896d2a66.bbea68","name":"","topic":"test","payload":"","payloadType":"date","repeat":"","crontab":"*/1 21 * * 1,2,3,4,5","once":true,"onceDelay":"2","x":308,"y":421,"wires":[["7222c49.6a1133c"]]},{"id":"7222c49.6a1133c","type":"time-range-switch","z":"896d2a66.bbea68","name":"-minus en timme","lat":"","lon":"","startTime":"05:20","endTime":"5:45","startOffset":0,"endOffset":0,"x":514,"y":421,"wires":[["f9c1d0f5.bf33d","ad3075ab.ed0e68"],[]]},{"id":"ad3075ab.ed0e68","type":"function","z":"896d2a66.bbea68","name":"","func":"msg.timestamp = new Date ();\nreturn msg;","outputs":1,"noerr":0,"x":790,"y":440,"wires":[["680e3886.8d9cb8"]]},{"id":"680e3886.8d9cb8","type":"moment","z":"896d2a66.bbea68","name":"","topic":"","input":"timestanp","inputType":"msg","inTz":"Etc/UTC","adjAmount":"1","adjType":"hours","adjDir":"add","format":"HH:mm","locale":"C","output":"payload","outputType":"msg","outTz":"Etc/UTC","x":1040,"y":440,"wires":[["e5131eb4.16ed3"]]},{"id":"4f5b56ae.16ac28","type":"ui_group","z":"","name":"Default","tab":"195a6fa0.466e4","order":1,"disp":false,"width":"6","collapse":false},{"id":"195a6fa0.466e4","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":1}]

     

     

    Dette var en knallbra start for meg, driver å tilpasser dette nå. Kan poste her når jeg føler meg sånn passe i mål. En av tingene jeg sliter med er at alt er en time feil, det tok meg litt tid å finne ut hvorfor, og grunnen er ganske enkelt at Docker-konteineren kjører på en annen tidssone enn hosten jeg kjører på. Prøver å finne den beste/mest varige løsningen på dette nå, tar gjerne i mot tips..

×
×
  • 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.