SUPLA wywóz śmieci

arekrgw
Posty: 37
Rejestracja: śr sie 15, 2018 6:42 pm

czw cze 25, 2020 5:08 pm

Witam,
popełniłem ostatnio taki mały skrypt który aktualizuje virtualny kanał z supla-virtual-device o najbliższą datę wywozu śmieci.
W aplikacji wygląda to następująco:
Obrazek

Repozytorium
https://github.com/arekrgw/supla-rubbish

Do działania, od wersji skryptu 2.0.0, można uruchomić generatory plików konfiguracyjnych komendami:

Kod: Zaznacz cały

npm run gen:supla
npm run gen:icons
Skrypt sam będzie pytał o dane i odpowiednio generował strukturę.

Od wersji 2.0.0 zmienił się plik konfiguracyjny supla.config.json, od teraz można dodać kilka regionów do jednego skryptu i nie trzeba robić kilku skryptów żeby obsłużyć wiele regionów.
Opis: supla.config.json

Kod: Zaznacz cały

{
  "kiedySmieciURL": "https://kiedysmieciv2.herokuapp.com",
  "regions": [
    {
      "bearer": "MzN...asDA",
      "suplaBaseServerURL": "https://svr16.supla.org/api/v2.3.0",
      "functionId": "230",
      "region": "5f245dd64d732d001768a9c5",
      "channel": "32568",
      "prefix": "Rogów",
      "printTypes": true
    },
    {
      "bearer": "MzN...asDA",
      "suplaBaseServerURL": "https://svr16.supla.org/api/v2.3.0",
      "functionId": "230",
      "region": "5f245e074d732d001768a9e4",
      "channel": "32876",
      "prefix": "Wągry",
      "printTypes": true
    }
  ]
}
  • bearer - bierzemy z chmury z zakładki integracje i osobiste tokeny dostępowe (koniecznie musi być zaznaczona możliwość modyfikacji kanałów)
  • kiedySmieciURL - tego nie ruszamy jest to mój serwer który podaje daty wywozów śmieci
  • functionId - jaki to ma być kanał jest to powiązane z tym co ustawimy w supla-virtual-device, w moim przypadku jest to czujnik otwarcia okna
Tak wygląda u mnie konfiguracja tego kanału w supla-virtual-device.cfg

Kod: Zaznacz cały

[CHANNEL_12]
function=WINDOWSENSOR
file=/home/pi/virtual/smieci/default
  • suplaBaseServerURL - tu tylko zmieniamy liczbę przy "svrXX"
  • region - id regionu z serwera KiedySmieci o tym później dalej...
  • channel - id kanału który będzie nam służył jako informacja o wywozie, patrz zrzut ekranu...
Obrazek
  • prefix - przed datą można dodać sobie jakiś napis np. nazwę regionu
  • printTypes - przyjmuje true lub false, wypisuje za datą jakie typy śmieci będą wywożone
Opis icons.config.json

Kod: Zaznacz cały

[
  {
    "icon": 884,
    "types": ["tworzywa sztuczne"]
  },
  {
    "icon": 883,
    "types": ["szkło"]
  },
  {
    "icon": 882,
    "types": ["zmieszane"]
  },
  {
    "icon": 881,
    "types": ["bio", "tworzywa sztuczne"]
  },
  {
    "icon": 880,
    "types": ["bio", "papier"]
  }

]
  • icon - id ikony która ma być ustawiona, aby uzyskać to id to patrz zrzut ekranu... Jeżeli ktoś zna łatwiejszy sposób to proszę o podzielenie się nim :D
Obrazek
  • types - lista typów śmieci które są wywożone danego dnia też jest to ściśle powiązane z serwerem KiedyŚmieci
Moje przykładowe ikony:
https://drive.google.com/drive/folders/ ... sp=sharing

Aby skrypt np. uruchamiał się codziennie, należy ustawić zadanie w Cronie np

Kod: Zaznacz cały


1 0 * * * /usr/local/bin/node /home/pi/supla-rubbish/index.js

będzie uruchamiany codziennie o 0:01

Teraz trochę o serwerze KiedyŚmieci
Niestety aby wasze daty się tam znalazły musicie mi przygotować plik z takimi datami i ja je samodzielnie dodam
Jak powinien ten plik wyglądać...

Kod: Zaznacz cały

{
  "city": {
    "cityName": "Rogów",
    "province": "łódzkie"
  },
  "region": {
    "regionName": "Rogów",
    "postalCode": "95-063",
    "hours": "6-15"
  },
  "dates": [
    {
      "date": "2020-08-03",
      "type": "bio"
    },
    {
      "date": "2020-08-03",
      "type": "papier"
    },
    {
      "date": "2020-08-03",
      "type": "zmieszane"
    },
    {
      "date": "2020-08-17",
      "type": "bio"
    }
  ]
}
Jeżeli danego dnia są wywożone wg przykładu bio i papier to trzeba to zrobić tak jak w przykładzie. Zachowajcie ten sam format daty. Wysyłajcie mi te pliki w wiadomości prywatnej tu na forum. Generalnie w przyszłości pojawi się automatyczna możliwość dodawania, ale jeszcze nie mam pomysłu jak to rozwiązać.

Jeżeli ktoś chce sprawdzić czy może jego region już jest to zapraszam pod link: https://kiedysmieciv2.herokuapp.com/regions. Użyjcie sobie jakiegoś formattera JSONa np. https://jsonformatter.curiousconcept.com/


EDIT #1: Update do wersji 2.0.0
Ostatnio zmieniony śr sie 05, 2020 4:10 pm przez arekrgw, łącznie zmieniany 1 raz.
Awatar użytkownika
Goral64
Posty: 501
Rejestracja: pt gru 27, 2019 6:22 pm

czw cze 25, 2020 5:36 pm

Fajne. Trochę pracy kosztowało.
Jednak zostanę przy apce "Kiedy wywóz".
RPi4: Supla Cloud + Supla Scripts + Proxy + Let's Encrypt
1x MEW-01, 1x LIW-01, 2x SBW-02, 2x PNW-01, 1x ROW-01, 1x ROW-02, 1x ROW-04m,
2x Sonoff BRIDGE RF 433
This is only the beggining...
Awatar użytkownika
pzygmunt
Posty: 8864
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

czw cze 25, 2020 6:32 pm

Cool
hanuer
Posty: 59
Rejestracja: wt sty 07, 2020 1:10 am

czw cze 25, 2020 6:41 pm

Mojej gminy brak :( Fajny projekt. Gratulacje.
Awatar użytkownika
klew
Posty: 993
Rejestracja: czw cze 27, 2019 12:16 pm

pn cze 29, 2020 12:23 pm

Gratuluję wykonania "kanału ogólnego przeznacznia" :). Pomysł z podmianą nazwy kanału jest interesujący.
arekrgw
Posty: 37
Rejestracja: śr sie 15, 2018 6:42 pm

śr sie 05, 2020 4:10 pm

Dzięki panowie za pozytywny odzew :D
arekrgw
Posty: 37
Rejestracja: śr sie 15, 2018 6:42 pm

śr sie 05, 2020 4:11 pm

Update do wersji 2.0.0
Awatar użytkownika
o_rany
Posty: 251
Rejestracja: śr lis 14, 2018 5:32 pm
Lokalizacja: Sosnowiec
Kontaktowanie:

czw sie 06, 2020 6:45 pm

Genialny pomysl! Zawsze wieczorem patrze czy sasiedzi wystawili bo to latwiej niz znalezc kartke od Remondisa:)
ODPOWIEDZ

Wróć do „Projekty użytkowników”