SUPLA - MQTT - Homebridge... i mamy Hej Siri!

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Beku
Posty: 409
Rejestracja: wt lis 06, 2018 1:49 pm

pn sie 10, 2020 5:46 pm

Błędna ścieżka do pliku command.yaml. Sprawdź czy plik znajduje się w lokalizacji jaką podałeś w pliku konfiguracyjnym.
ems
Posty: 5
Rejestracja: śr sie 05, 2020 8:01 pm

wt sie 11, 2020 6:49 pm

Beku pisze:
pn sie 10, 2020 5:46 pm
Błędna ścieżka do pliku command.yaml. Sprawdź czy plik znajduje się w lokalizacji jaką podałeś w pliku konfiguracyjnym.
W command.yaml nie bylo komendy do bramy, więc ją dodałem, tak jak sugerowałeś w innym temacie:

Kod: Zaznacz cały

  # template for gate, garage door
 # payload: {"idx": 4, "hi": 1}
 - topic: 'supla/channels/command/#'
   id: '/idx'
   shut: '/hi' 
Tak wygląda config:

Kod: Zaznacz cały

    "accessories": [
        {
            "accessory": "mqttthing",
            "type": "garageDoorOpener",
            "name": "garaz",
            "topics": {
                "setTargetDoorState": {
                    "topic": "supla/channels/command/garagedoor/25899",
                    "apply": "return JSON.stringify({ id: 25899, hi: message });"
                },
                "getTargetDoorState": {
                    "topic": "supla/channels/status/garagedoor/25899",
                    "apply": "return JSON.parse(message).sensor_1;"
                },
                "getCurrentDoorState": {
                    "topic": "supla/channels/status/garagedoor/25899",
                    "apply": "return JSON.parse(message).sensor_1;"
                },
                "setLockTargetState": {
                    "topic": "supla/channels/command/garagedoor/25899",
                    "apply": "return JSON.stringify({ id: 25899, hi: message });"
                },
                "getLockTargetState": {
                    "topic": "supla/channels/status/garagedoor/25899",
                    "apply": "return JSON.parse(message).sensor_1;"
                },
                "getLockCurrentState": {
                    "topic": "supla/channels/status/garagedoor/25899",
                    "apply": "return JSON.parse(message).sensor_1;"
                },
                "getObstructionDetected": {
                    "topic": "supla/channels/status/garagedoor/25899",
                    "apply": "return JSON.parse(message).online;"
                }
            },
            "doorValues": [
                "1",
                "1",
                "0",
                "0",
                "0"
            ]
        }
    ],
A tak wygląda terminal po wciśnięciu w aplikacji Dom, żeby brama się otworzyła:

Kod: Zaznacz cały

pi@homebridge:/var/lib/homebridge $ cd supla-core/supla-mqtt-client/Release
pi@homebridge:/var/lib/homebridge/supla-core/supla-mqtt-client/Release $ ./supla-mqtt-client -config config_template.yaml
INFO[1597171329.817415] initializing main loop
INFO[1597171329.819224] Client GUID: 02C62C0541919052C67D2AC6DF0B3AB3
INFO[1597171329.824569] SSL version: OpenSSL 1.1.1d  10 Sep 2019
INFO[1597171329.834046] Connecting...
ERR[1597171343.448501] error while trying get value from payload [error: Not an integer]
ERR[1597171343.448639] error while trying get value from payload [error: Name not found]
ERR[1597171343.448722] error while trying get value from payload [error: Name not found]
ERR[1597171343.448787] error while trying get value from payload [error: Not an integer]
ERR[1597171343.448848] error while trying get value from payload [error: Not an integer]
ERR[1597171343.448906] error while trying get value from payload [error: Not an integer]
ERR[1597171343.448964] error while trying get value from payload [error: Name not found]
Obrazek

Brama nie reaguje. Prawdopodobnie błąd jest w configu?
Beku
Posty: 409
Rejestracja: wt lis 06, 2018 1:49 pm

wt sie 11, 2020 8:02 pm

Zmien w config /idx na /id
Bo taki wysyłasz payload do mqtt
ems
Posty: 5
Rejestracja: śr sie 05, 2020 8:01 pm

śr sie 12, 2020 9:18 pm

Beku pisze:
wt sie 11, 2020 8:02 pm
Zmien w config /idx na /id
Bo taki wysyłasz payload do mqtt
Dzięki, nareszcie działa :)
Kocurr
Posty: 8
Rejestracja: ndz sie 25, 2019 7:53 pm

czw paź 15, 2020 9:29 pm

UbU pisze:
wt cze 09, 2020 3:25 pm
Kocurr pisze:
sob maja 09, 2020 8:09 am
Wszystko odpalone, ale za cholerę nie mogę dobrze skonfiguorować akcesoriów.
Używam 3x Sonoff 4ch pro r2 i komendy mqtt nie są właściwie wysyłane.

Czy mogę prosić o pomoc we właściwej edycji json'a?

Będę mega wdzięczny

Kod: Zaznacz cały

{
            "type": "lightbulb-OnOff",
            "name": "Salon TV",
            "topics": {
                "getOnline": {
                    "topic": "supla/channels/status/relay/7792",
                    "apply": "return JSON.parse(message).online;"
                },
                "getOn": {
                    "topic": "supla/channels/status/relay/7792",
                    "apply": "return JSON.parse(message).on;"
                },
                "setOn": {
                    "topic": "supla/channels/command/relay/7792",
                    "apply": "return JSON.stringify({id: 7792, on: message});"
                }
            },
            "onValue": "1",
            "offValue": "0",
            "accessory": "mqttthing"
        },
Nie ma za co :-)

dzięki!!! Wszystko działa cacy :)
klapoluch
Posty: 1
Rejestracja: pn lip 29, 2019 7:32 pm

ndz gru 20, 2020 5:11 pm

Witam Panowie mam problem z poprawnym ustawieniem jsona dla typu "type": "contactSensor",
ponizej przyklad jak to ustawilem ale wogule nie reaguje na zmiany

Kod: Zaznacz cały

  {
            "accessory": "mqttthing",
            "type": "contactSensor",
            "name": "Furtka Otwarta",
            "url": "http://192.168.2.13:1883",
            "username": "",
            "password": "",
            "topics": {
                "getContactSensorState": {
                    "topic": "supla/channels/10442/RESULT",
                    "apply": "return  JSON.parse(message).RfReceived.Data;"
                }
            },
            "onValue": "1",
            "offValue": "0"
        }, 
chcialem tylko podejrzec jego stan
sllawek66@wp.pl
Posty: 33
Rejestracja: czw lis 14, 2019 2:28 pm

ndz gru 20, 2020 9:42 pm

To jest dla ludzi kompetentnych, my czekamy na normalne rzeczy bramkę i termostat ktury miał być i nie ma.
moondec
Posty: 29
Rejestracja: ndz paź 30, 2016 7:54 pm

pt sty 08, 2021 10:27 pm

UbU pisze:
śr cze 10, 2020 10:23 am
UbU pisze:
wt cze 09, 2020 3:21 pm
Mam takie nieśmiałe pytanie:

Jak skonfigurować LEDy (ZAMEL SLW-01)?
Nie znalazłem w urządzeniach homekita nic pasującego parametrami.
RGB można z komunikatu wyjąć/złożyć ale co robić z color_brightness?
Sam sobie częściowo odpowiem:

Kod: Zaznacz cały

 	{
            "type": "lightbulb",
            "name": "ZAMEL SLW-01",
            "topics": {
                "getOnline": {
                    "topic": "supla/channels/status/rgblightning/6952",
                    "apply": "return JSON.parse(message).online;"
                },
                "getOn": {
                    "topic": "supla/channels/status/rgblightning/6952",
                    "apply": "return JSON.parse(message).color_brightness > 0;"
                },
                "setOn": {
                    "topic": "supla/channels/command/rgblightning/6952",
                    "apply": "return JSON.stringify({id: 6952, c_brightness: message * 100});"
                },
                "getRGB": {
                    "topic": "supla/channels/status/rgblightning/6952",
                    "apply": "return JSON.parse(message).color;"
                },
                "setRGB": {
                    "topic": "supla/channels/command/rgblightning/6952",
                    "apply": "return JSON.stringify({id: 6952, colors: {r: parseInt(message.substr(2,2), 16), g: parseInt(message.substr(4,2), 16), b: parseInt(message.substr(6,2), 16)}});"
                },
                "getBrightness": {
                    "topic": "supla/channels/status/rgblightning/6952",
                    "apply": "return JSON.parse(message).color_brightness;"
                },
                "setBrightness": {
                    "topic": "supla/channels/command/rgblightning/6952",
                    "apply": "return JSON.stringify({id: 6952, c_brightness: message});"
                }
            },
            "integerValue": true,
            "hex": true,
            "hexPrefix": "0x",
            "accessory": "mqttthing"
        }
       
W takiej konfiguracji pięknie działa włączanie/wyłączanie i zmiana kolorów.
Niestety nadal jest problem z parametrem "brightness". Zmiana jasności w aplikacji nie wystawia informacji na topic setBrightness tylko zmienia kolor w topicu setRGB, co nic powoduje zmiany jasności w Supli.
Uszanowanie!
Temat może nieco już przebrzmiał ale może komuś jeszcze się przyda sterowanie dimmerem RGB poprzez Homebridge. Podepnę się tutaj, bo ten wątek jest podobny. W załączniku plik, który zawiera tzw. codec do mqttthing. Nie jest to arcydzieło - raczej posklejany troll, ale działa. Trochę irytuje, że resetuje do białego po wy/wł (można dopracować). Zawartość 'codeca' umieściłem w

Kod: Zaznacz cały

/var/lib/homebridge/codecs/rgb2hsv.js
To znaczy do tego katalogu homebridge ma u mnie dostęp (3 kropki w górnym prawym rogu UI -> Terminal, mkdir codecs; nano codecs/rgb2hsv.js). Zapewne lepiej przekleić do nano albo vi z uwagi na 'chmod' i 'chown'.

Tu plik:
rgb2hsv.js.zip
(1.77 KiB) Pobrany 21 razy
i fragment konfiguracji dla H-801

Kod: Zaznacz cały

{
            "type": "lightbulb",
            "accessory": "mqttthing",
            "name": "Salon RGB",
            "url": "mqtt.server",
            "username": "user_mqtt",
            "password": "pass",
            "topics": {
                "getOnline": {
                    "topic": "supla/channels/status/rgblightning/17",
                    "apply": "return JSON.parse(message).online;"
                },
                "getOn": {
                    "topic": "supla/channels/status/rgblightning/17",
                    "apply": "return JSON.parse(message).color_brightness > 0;"
                },
                "setOn": {
                    "topic": "supla/channels/command/rgblightning/17",
                    "apply": "return JSON.stringify({id: 17, c_brightness: message * 100});"
                },
                "getRGB": {
                    "topic": "supla/channels/status/rgblightning/17",
                    "apply": "return JSON.parse(message).color;"
                },
                "setRGB": {
                    "topic": "supla/channels/command/rgblightning/17",
                    "apply": "return JSON.stringify({id: 17, colors: message});"
                }
            },
            "integerValue": true,
            "hex": true,
            "hexPrefix": "0x",
            "codec": "codecs/rgb2hsv.js"
        },
        {
            "type": "lightbulb",
            "accessory": "mqttthing",
            "name": "Salon W1",
            "url": "mqtt.server",
            "username": "user_mqtt",
            "password": "pass",
            "topics": {
                "getOnline": {
                    "topic": "supla/channels/status/dimmer/18",
                    "apply": "return JSON.parse(message).online;"
                },
                "getOn": {
                    "topic": "supla/channels/status/dimmer/18",
                    "apply": "return JSON.parse(message).brightness > 0;"
                },
                "getBrightness": {
                    "topic": "supla/channels/status/dimmer/18",
                    "apply": "return JSON.parse(message).brightness;"
                },
                "setBrightness": {
                    "topic": "supla/channels/command/dimmer/18",
                    "apply": "return JSON.stringify({id: 18, brightness: message});"
                }
            },
            "integerValue": "false",
            "onValue": "1",
            "offValue": "0"
        }
Powodzenia i pozdrawiam
Awatar użytkownika
PuteR
Posty: 1025
Rejestracja: śr gru 06, 2017 10:07 am

pn lut 01, 2021 12:45 am

Witam, czy ktoś mógłby mi pomóc w konfiguracji tego??

Zainstalowałem hombridge na PI Zero - postępowałem według pierwszego postu na cloud w zakładce smartfony pojawił się nowy telefon MQTT... Co dalej trzeba zrobić aby urządzenia pojawiły się w aplikacji "Dom".

Mam własny serwer postawiony na RPI 4.

Z góry dzięki za każdą pomoc.

Tak wygląda config_template.yaml

Kod: Zaznacz cały

mqtt:
  host: '192.168.1.33'
  port: 1883
  commands_file_path: '/var/lib/homebridge/supla-core/supla-mqtt-client/config/command.yaml'
  states_file_path: '/var/lib/homebridge/supla-core/supla-mqtt-client/config/state.yaml'
  client_name: 'supla_mqtt_client'
  protocol_version: 3
  publish_supla_events: true
supla:
  port: 2016
  host: '192.168.1.81'
  protocol_version: 10
  email: 'mój_email
Awatar użytkownika
PuteR
Posty: 1025
Rejestracja: śr gru 06, 2017 10:07 am

pn lut 01, 2021 2:19 pm

wydaje mi się że mam coś nie tak w działaniu samego brockera mqtt bo cały czas otrzymuję coś takiego

Kod: Zaznacz cały

~/supla-core/supla-mqtt-client/Release$ ./supla-mqtt-client -config config_template.yaml
INFO[1612189068.193926] initializing main loop
INFO[1612189068.194838] Client GUID: 4ACA373596DE94C0E18B9F9E0132D613
configuration file missing [parameter -config]
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”