maxill1 / ialarm-mqtt

ialarm to mqtt bridge
MIT License
8 stars 3 forks source link

Multiple Area: arm/disarm specific area #20

Closed maxill1 closed 2 years ago

maxill1 commented 3 years ago

[...] mi rimane il problema che arma solo l'area 1 e la 2,3,4 non le vede... [...] Originally posted by @blakdog1978 in https://github.com/maxill1/ialarm-mqtt/issues/19#issuecomment-943017683

maxill1 commented 3 years ago

Dovremmo provare a capire se il comando "SetAlarmStatus" e "GetAlarmStatus" permette di passare un qualche parametro di indice (area 1, area 2, area 3).

Secondo quanto osservato da @wildstray il comando GetAlarmStatus non sembra avere un Ln, Offset (come GetZone) o una Pos (come GetByWay) ne un Num (come GetWlsStatus).

Non avendo una centrale che supporta più aree non posso testare di persona il submit di un xml con un eventuale Pos/Num/Lx/Offset, posso dire che passandoli la mia centrale iAlarm/Antifurto356 li accetta, li ignora e mi torna lo stato dell'unica area che ho.

blakdog1978 commented 3 years ago

Dimmi come posso essere di aiuto.

maxill1 commented 3 years ago

grazie del supporto.

Vorrei prima identificare quale pannello è per capire che caratteristiche ha e se trovo su internet qualche info, perchè senza sniffare il traffico tra app android e centrale andiamo davvero a tentativi...

Sul forum indomus avevi messo uno screenshot e mi sembrava ci fosse scritto DEFCON, quindi immagino una di quelle vendute da skynetitalia, ovvero wmg ovvero Meian/Focus?

A naso sembra un rebrand di una di queste due, corretto?

FC-7640 Plus FC-7688Plus

blakdog1978 commented 3 years ago

La FC-7688Plus è uguale anche la tastiera, come supporto vado qua: https://supporto.skynetitalia.net/site/index/659

maxill1 commented 3 years ago

l'applicazione dai video sembra leggermente diversa da IPGuard di antifurto365 ma credo che se me la installo probabilmente funziona anche con il mio antifurto (tempo provai una applicazione di un altro brand e andava...il protocollo dopotutto è lo stesso). Sai dirmi il nome dell'applicazione, se si trova sul playstore o dove trovare l'apk?

blakdog1978 commented 3 years ago

Si chiama ST Panel si trona nel playstore

maxill1 commented 3 years ago

@blakdog1978 allora avrei un soluzione che però richiede il tuo intervento.

In pratica dovresti installare uno sniffer che si chiama tpacketCapture su un telefono android che abbia ST Panel installato quindi:

L'alternativa se vuoi è che ti spiego come decodificarla usando node-ialarm, fammi sapere se te la senti.

image

blakdog1978 commented 3 years ago

Come faccio a mandartelo in privato? Se vuoi prova a spiegarmi come fare a decodificarlo...

maxill1 commented 3 years ago

se vuoi provare a decodificarlo ti ho preparato un piccolo script con nodejs.

Per eseguirlo dovrai:

  1. scaricare questo script quindi estrare tutto il contenuto in una cartella meian-wireshark-string-literal-decoder.zip
  2. installare sul pc nodejs
  3. aprire il file pcap con wireshark e filtrare per ip (ip.addr == 192.168.1.x o 47.91.74.102 in funzione di come ti sei collegato ) quindi scorrere la lista e trovare i messaggi che hanno @ieM dentro il corpo (vedi la schermata di esempio di poco fa)
  4. copiare la "stringa letterale" estratta da uno di questi messaggi da wireshark e incollarla nel file "message.txt" presente nella cartella che hai estratto al punto 1
    • aprire il terminale e lanciare lo script in questo modo:
node index.js

in console vedrai il messaggio decodificato:

Decoded message <Root><Host><SetAlarmStatus><DevStatus>TYP,DISARM|1</DevStatus><Err/></SetAlarmStatus></Host></Root>

Se i messaggi hanno dati personali (username, password o altro sensibile come nomi zone, etc) oscurali e poi postali pure qui.

in alternativa fammi sapere che ti riposto la mia mail

blakdog1978 commented 3 years ago

Non mi è chiaro come estrarre lo script e lanciare lo script.

maxill1 commented 3 years ago

Scarica il file zip meian-wireshark-string-literal-decoder.zip dal post precedente ed estrailo in una cartella per lanciarlo ti servirà nodejs che è un interprete di questo linguaggio (JavaScript)

blakdog1978 commented 3 years ago

scusa mi ero perso il tuo commento...

blakdog1978 commented 3 years ago

se vuoi provare a decodificarlo ti ho preparato un piccolo script con nodejs.

Per eseguirlo dovrai:

  1. scaricare questo script quindi estrare tutto il contenuto in una cartella meian-wireshark-string-literal-decoder.zip Va bene qualsiasi cartella ?
  2. installare sul pc nodejs
  3. aprire il file pcap con wireshark e filtrare per ip (ip.addr == 192.168.1.x o 47.91.74.102 in funzione di come ti sei collegato ) quindi scorrere la lista e trovare i messaggi che hanno @iem dentro il corpo (vedi la schermata di esempio di poco fa)
  4. copiare la "stringa letterale" estratta da uno di questi messaggi da wireshark e incollarla nel file "message.txt" presente nella cartella che hai estratto al punto 1
  • aprire il terminale e lanciare lo script in questo modo: Quale terminale ? uno di quelli installato con node.js ?
node index.js

in console vedrai il messaggio decodificato:

Decoded message <Root><Host><SetAlarmStatus><DevStatus>TYP,DISARM|1</DevStatus><Err/></SetAlarmStatus></Host></Root>

Se i messaggi hanno dati personali (username, password o altro sensibile come nomi zone, etc) oscurali e poi postali pure qui.

in alternativa fammi sapere che ti riposto la mia mail

blakdog1978 commented 3 years ago

ok sono riuscito la posto qui ?

maxill1 commented 3 years ago

ok sono riuscito la posto qui ?

Se non ci sono dati sensibili si, altrimenti cancellali e mettici delle XXX prima di postare

blakdog1978 commented 3 years ago

non riesco a postarle cambiano

maxill1 commented 3 years ago

non riesco a postarle cambiano

ok ho ricevuto il file:

Decoded message <Root><Host><SetArea><Pos>S32,0,3|3</Pos><Status>S32,0,0|0</Status><Err/></SetArea></Host></Root>
Decoded message <Root><Host><GetArea><Total/><Offset>S32,0,0|0</Offset><Ln/><Err/></GetArea></Host></Root>

Quindi è un nuovo comando che si chiama GetArea e SetArea...perfetto abbiamo qualcosa da cui partire! Grazie :smile:

blakdog1978 commented 3 years ago

Grazie a te !

maxill1 commented 3 years ago

Purtroppo quei comandi sulla mia centrale non producono alcun risultato, quindi non posso testarli in prima persona. Posso chiederti di eseguire un test?

  1. Dovresti scaricare questo zip test-area.zip e posizionarlo in una cartella
  2. aprire un terminale nella cartella dove hai posizionato il contenuto dello zip ed eseguire:
    node index.js username=admin password=password host=192.168.1.x

    modificando username, password e host (gli stessi che usi per ialarm-mqtt).

In circa 20 secondi dovrebbe stamparti in console qualcosa di simile a questo e spero con risultati diversi:

will test meianClient on 192.168.1.81:18034
Sending command: SetArea with args 0,2
SetArea: connected to 192.168.1.81:18034
SetArea: disconnecting from 192.168.1.81:18034
Response: {"commandNames":["SetArea"],"commandArgs":[[0,"2"]],"data":{"SetArea":{"Root":{"Host":{"SetArea":{"Pos":{},"Status":{"value":"TYP,STAY|2"},"Err":{}}}}}}}
Sending command: GetArea with args 0
GetArea: connected to 192.168.1.81:18034
GetArea: disconnecting from 192.168.1.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[0]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{},"Offset":{"value":"S32,0,0|0"},"Ln":{},"Err":{}}}}}}}
Sending command: GetArea with args 1
GetArea: connected to 192.168.1.81:18034
GetArea: disconnecting from 192.168.1.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[1]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{},"Offset":{"value":"S32,0,0|1"},"Ln":{},"Err":{}}}}}}}
Sending command: GetArea with args 2
GetArea: connected to 192.168.1.81:18034
GetArea: disconnecting from 192.168.1.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[2]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{},"Offset":{"value":"S32,0,0|2"},"Ln":{},"Err":{}}}}}}}
Sending command: GetArea with args 3
GetArea: connected to 192.168.1.81:18034
GetArea: disconnecting from 192.168.1.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[3]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{},"Offset":{"value":"S32,0,0|3"},"Ln":{},"Err":{}}}}}}}
blakdog1978 commented 3 years ago

questo è il risultato:

will test meianClient on 192.168.8.81:18034
Sending command: SetArea with args 0,2
SetArea: connected to 192.168.8.81:18034
SetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["SetArea"],"commandArgs":[[0,"2"]],"data":{"SetArea":{"Root":{"Host":{"SetArea":{"Pos":{"value":"S32,0,3|0"},"Status":{"value":"TYP,STAY|2"},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 0
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[0]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,STAY|2"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 1
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[1]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,1|1"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,STAY|2"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 2
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[2]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,2|2"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,STAY|2"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 3
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[3]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,3|3"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,STAY|2"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
maxill1 commented 3 years ago

Perfetto!

Un paio di domande:

Il comando SetArea ti ha funzionato armando "in casa" su Area 3? (indice 2 = 3 posizione dell'array quindi area 3) Verificalo da ST Panel o da pannello web.

Il comando GetArea sembra funzionare da una lista d 4i elementi (L0,L1,L2,L3) e ognuna ha il suo stato (STAY, DISARM, DISARM, DISARM):

"GetArea": {
      "Root": {
        "Host": {
          "GetArea": {
            "Total": {
              "value": "S32,4,4|4"
            },
            "Offset": {
              "value": "S32,0,0|0"
            },
            "Ln": {
              "value": "S32,0,4|4"
            },
            "L0": {
              "Status": {
                "value": "TYP,STAY|2"
              }
            },
            "L1": {
              "Status": {
                "value": "TYP,DISARM|1"
              }
            },
            "L2": {
              "Status": {
                "value": "TYP,DISARM|1"
              }
            },
            "L3": {
              "Status": {
                "value": "TYP,DISARM|1"
              }
            },
            "Err": {}
          }
        }
      },
      "Err": "ERR|00"
    }
blakdog1978 commented 3 years ago

Sembra aver armato in casa area 1

maxill1 commented 3 years ago

hai ragione...mi ricordavo male, perdonami.

nel codice che trovi nel file index.js, c'è indice 0 quindi l'area armata era la numero 1.

Ti andrebbe di modificarlo con un area diversa e riprovare?

riga 41 modifica lo 0 che ho messo in grassetto con 1, 2 o 3 e se vuoi prova a cambiare "ARMED_HOME" con "DISARMED" oppure "ARMED_AWAY"

testSocket(['SetArea'], [[0, alarmStatus.fromStatusToTcpValue('ARMED_HOME')]], function () {

se funziona integriamo la cosa nella prossima versione ed rendo configurabile il numero di Aree, in modo che venga esposto un entity "alarm_control_panel" per ogni Area.

blakdog1978 commented 3 years ago

Fatto ha funzionato mettendo 1 ha armato area 2 posto il risultato:

will test meianClient on 192.168.8.81:18034
Sending command: SetArea with args 1,2
SetArea: connected to 192.168.8.81:18034
SetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["SetArea"],"commandArgs":[[1,"2"]],"data":{"SetArea":{"Root":{"Host":{"SetArea":{"Pos":{"value":"S32,0,3|1"},"Status":{"value":"TYP,STAY|2"},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 0
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[0]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,STAY|2"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 1
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[1]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,1|1"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,STAY|2"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 2
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[2]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,2|2"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,STAY|2"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
Sending command: GetArea with args 3
GetArea: connected to 192.168.8.81:18034
GetArea: disconnecting from 192.168.8.81:18034
Response: {"commandNames":["GetArea"],"commandArgs":[[3]],"data":{"GetArea":{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,3|3"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,STAY|2"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}}}
maxill1 commented 3 years ago

fantastico, ultimo sforzo! prova a disarmare mettendo DISARMED al posto di ARMED_HOME :pray:

blakdog1978 commented 3 years ago

Appena rientro provo molto volentieri.

blakdog1978 commented 3 years ago

Fatto funziona !

maxill1 commented 3 years ago

ho rilasciato una versione che include la gestione delle aree come separati alarm_control_panel

Puoi modificare la configurazione dell'addon/container docker mettendo il numero di aree nel nodo server (default è 1):

server:
  areas: 4
blakdog1978 commented 3 years ago

Ciao sto provando la versiona nuova sembra avere qualche problema, crea i pannelli differenziati ma non legge lo stato delle aree se sono armate o no le da tutte disarmate, se provo ad armarle le arma posto un pezzo del log.

["GetLog"]: concurrent commands, delaying 200ms
["GetArea"]: concurrent commands, delaying 400ms
info: Caching ialarm/alarm/event until Fri Nov 05 2021 18:01:56 GMT+0100 (Central European Standard Time)
warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead
["GetAlarmStatus"]: concurrent commands, delaying 400ms
"GetByWay": concurrent commands, delaying 200ms
info: Caching ialarm/sensors/state until Fri Nov 05 2021 18:01:57 GMT+0100 (Central European Standard Time)
info: sending topic 'ialarm/sensors/state' : Array of 40 elements
info: Caching ialarm/sensors/zone_1 until Fri Nov 05 2021 18:01:57 GMT+0100 (Central European Standard Time)
info: sending topic 'ialarm/sensors/zone_1' : Object with 18 keys
["GetArea"]: concurrent commands, delaying 200ms
warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead
["GetAlarmStatus"]: concurrent commands, delaying 400ms
"GetByWay": concurrent commands, delaying 200ms
info: Caching ialarm/sensors/state until Fri Nov 05 2021 18:02:02 GMT+0100 (Central European Standard Time)
info: sending topic 'ialarm/sensors/state' : Array of 40 elements
info: Caching ialarm/sensors/zone_1 until Fri Nov 05 2021 18:02:02 GMT+0100 (Central European Standard Time)
info: sending topic 'ialarm/sensors/zone_1' : Object with 18 keys
["GetLog"]: concurrent commands, delaying 200ms
["GetArea"]: concurrent commands, delaying 400ms
warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead
["GetAlarmStatus"]: concurrent commands, delaying 400ms
"GetByWay": concurrent commands, delaying 200ms
["GetArea"]: concurrent commands, delaying 200ms
warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead
["GetAlarmStatus"]: concurrent commands, delaying 400ms
"GetByWay": concurrent commands, delaying 200ms
["GetLog"]: concurrent commands, delaying 200ms
["GetArea"]: concurrent commands, delaying 400ms
warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead
["GetAlarmStatus"]: concurrent commands, delaying 400ms
"GetByWay": concurrent commands, delaying 200ms
["GetArea"]: concurrent commands, delaying 200ms
warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead
["GetAlarmStatus"]: concurrent commands, delaying 400ms
"GetByWay": concurrent commands, delaying 200ms
["GetLog"]: concurrent commands, delaying 200ms
["GetArea"]: concurrent commands, delaying 400ms
maxill1 commented 3 years ago

mmmm sembra come se non riconosca la riposta del comando "GetArea" e quindi vada in fallback sullo stato GetAlarmStatus (quello solito).

warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead

blakdog1978 commented 3 years ago

Niente ora non va più si blocca su Get Net

blakdog1978 commented 3 years ago

mmmm sembra come se non riconosca la riposta del comando "GetArea" e quindi vada in fallback sullo stato GetAlarmStatus (quello solito).

warning: Your alarm is not exposing any areas with GetArea, use GetAlarmStatus instead

Credi ci possa essere una soluzione ?

Se faccio girare l'addon con questo problema c'è il rischio di friggere la centrale ?

Comunque non riesco a capire perchè prima non lo faceva ed ora invece si... prima l'area 1 sembrava funzionare, e comunque i comandi li prende anche ora cioè se provo ad armare o disrmare le zone lo fa...

maxill1 commented 3 years ago

ora infatti arm/disarm funzione, è il recupero dello stato attuale che non va. Sicuramente ho scritto io qualcosa che non va. Appena possibile ti faccio uno script come l'altra volta per testare GetAlarmStatus e, se riesco a capire come, anche le 128 zone.

blakdog1978 commented 2 years ago

qualche aggiornamento ?

blakdog1978 commented 2 years ago

Magari ti aiuterebbe sapere che quando avevo installado anche node-red con i nodi dell'allarme la tua integrazione mi vedeva tutti i sensori poi quando ho reinstallato home assistant la tua integrazione non va oltre le 40 zone...

maxill1 commented 2 years ago

@blakdog1978 continuiamo qui il problema delle Aree (https://github.com/maxill1/ialarm-mqtt/issues/36#issuecomment-1312402512)

Per info ... ho provato la nuova versione stabile, ma a me non funziona non aggiorna lo stato ei sensori, sembra non trovarli neanche tutti ... li da tutti chiusi e non riconosce neanche lo stato della centrale, ecco il log.

LOG

Uno dei problemi è sicuramente sulla lettura dello stato delle aree, me lo aspettavo una stringa quando non lo è:

error: error status.toLowerCase is not a function info

purtroppo sui messaggi GetArea vado a tentativi, la mia centrale non li espone e non riesco a capire che cosa torna. Ho aggiornato la versione di sviluppo dell'addon con dei log che spammano **** DEBUG *** quando arriva un messaggio GetArea, quando puoi installala e vedi cosa stampa. Grazie

blakdog1978 commented 2 years ago

ecco il log:

`Please, share the above information when looking for help or support in, e.g., GitHub, forums or the Discord chat.

cont-init: info: /etc/cont-init.d/00-banner.sh exited 0 cont-init: info: running /etc/cont-init.d/01-log-level.sh cont-init: info: /etc/cont-init.d/01-log-level.sh exited 0 s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun ialarm-mqtt (no readiness notification) s6-rc: info: service legacy-services successfully started [13:52:46] INFO: Passing /data/options.json ialarm-mqtt@ 0.11.1 to with node-ialarm@ 0.6.1 on node v16.17.1 [13:52:46] INFO: Starting ialarm-mqtt... Found arg --hassos with value /data/options.json info: Trying to merge HASSOS options file (/data/options.json) with default config.json warning: Config value "["name"]" missing on /data/options.json using default: "Alarm" info: Starting up... info: MQTT connecting to broker 192.168.8.208:1883 with cliendId ialarm-mqtt (node:150) ExperimentalWarning: Importing JSON modules is an experimental feature. This feature could change at any time (Use node --trace-warnings ... to show where the warning was created) info: MQTT connected to broker 192.168.8.208:1883 with cliendId ialarm-mqtt warning: Feature bypass is disabled info: subscribing to ["ialarm/alarm/discovery","ialarm/alarm/resetCache","ialarm/alarm/area/+/set"] info: Starting TCP connection... info: con-3868/2948: logged in to 192.168.5.81:18034 with response {"commandName":"Client","connectionId":"3868","transactionId":"2948","encrypted":"@ieM0071000100000}<<\}0r\b~rk}_B1\u0004yWDxd^dY'BpptGy64x\u001ehec|xa\u001d0^|-xqFI%Xc\u001ejk2\u0003QYa0\u0017\u001c!\rL\u00130000","xml":"ERR|00","rawData":{"Root":{"Pair":{"Client":{"Err":{}}}},"Err":"ERR|00"}} info: logged in (1668257567611) info: Setting up first TCP command to retrieve mac address... info: First connection OK: alarm panel responded undefined info: Retrieving zone info ... info: Caching ialarm/alarm/availability until Sat Nov 12 2022 13:57:47 GMT+0100 (Central European Standard Time) info: Status polling every 3000ms info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: Caching ialarm/alarm/configStatus until Sat Nov 12 2022 13:57:47 GMT+0100 (Central European Standard Time) info: sending topic 'homeassistant/alarm_control_panel/ialarm/config' : info: sending topic 'homeassistant/sensor/ialarm/error/config' : info: Caching ialarm/alarm/error until Sat Nov 12 2022 13:57:47 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/alarm/error' : info: sending topic 'homeassistant/switch/ialarm/clear_cache/config' : info: sending topic 'homeassistant/switch/ialarm/clear_discovery/config' : info: sending topic 'homeassistant/binary_sensor/ialarm/connection/config' : info: sending topic 'homeassistant/switch/ialarm/clear_triggered/config' : info: sending topic 'homeassistant/alarm_control_panel/ialarm_1/config' : info: sending topic 'homeassistant/sensor/ialarm/events/config' : info: Setting up Home assistant discovery...`

maxill1 commented 2 years ago

Nel log ancora non è arrivato al polling dello stato (GetArea) sta ancora facendo il discovery MQTT: Setting up Home assistant discovery

mi serve la parte in cui ti dava error: error status.toLowerCase is not a function info, che avviene credo dopo un minutino.

blakdog1978 commented 2 years ago

Non ci arriva più, va avanti cosi

-rc: info: service legacy-services: starting services-up: info: copying legacy longrun ialarm-mqtt (no readiness notification) s6-rc: info: service legacy-services successfully started [14:46:21] INFO: Passing /data/options.json ialarm-mqtt@ 0.11.1 to with node-ialarm@ 0.6.1 on node v16.17.1 [14:46:21] INFO: Starting ialarm-mqtt... Found arg --hassos with value /data/options.json info: Trying to merge HASSOS options file (/data/options.json) with default config.json warning: Config value "["name"]" missing on /data/options.json using default: "Alarm" info: Starting up... info: MQTT connecting to broker 192.168.8.208:1883 with cliendId ialarm-mqtt (node:147) ExperimentalWarning: Importing JSON modules is an experimental feature. This feature could change at any time (Usenode --trace-warnings ...to show where the warning was created) info: MQTT connected to broker 192.168.8.208:1883 with cliendId ialarm-mqtt warning: Feature bypass is disabled info: subscribing to ["ialarm/alarm/discovery","ialarm/alarm/resetCache","ialarm/alarm/area/+/set"] info: Starting TCP connection... info: con-1872/8868: logged in to 192.168.5.81:18034 with response {"commandName":"Client","connectionId":"1872","transactionId":"8868","encrypted":"@ieM0071000100000}<<\\}0r\b~rk}_B1\u0004yWDxd^dY'BpptGy64x\u001ehec|xa\u001d0^|-xqFI%Xc\u001ejk2\u0003QYa0\u0017\u001c!\rL\u00130000","xml":"<Err>ERR|00</Err><Root><Pair><Client><Err></Err></Client></Pair></Root>","rawData":{"Root":{"Pair":{"Client":{"Err":{}}}},"Err":"ERR|00"}} info: logged in (1668260783089) info: Setting up first TCP command to retrieve mac address... info: First connection OK: alarm panel responded undefined info: Retrieving zone info ... info: Caching ialarm/alarm/availability until Sat Nov 12 2022 14:51:23 GMT+0100 (Central European Standard Time) info: Status polling every 3000ms info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: A request is in progress...we will wait for response before sending "GetZone" (undefined) info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: Caching ialarm/alarm/configStatus until Sat Nov 12 2022 14:51:23 GMT+0100 (Central European Standard Time) info: sending topic 'homeassistant/alarm_control_panel/ialarm/config' : info: sending topic 'homeassistant/sensor/ialarm/error/config' : info: Caching ialarm/alarm/error until Sat Nov 12 2022 14:51:23 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/alarm/error' : info: sending topic 'homeassistant/switch/ialarm/clear_cache/config' : info: sending topic 'homeassistant/switch/ialarm/clear_discovery/config' : info: sending topic 'homeassistant/binary_sensor/ialarm/connection/config' : info: sending topic 'homeassistant/switch/ialarm/clear_triggered/config' : info: sending topic 'homeassistant/alarm_control_panel/ialarm_1/config' : info: sending topic 'homeassistant/sensor/ialarm/events/config' : info: Setting up Home assistant discovery... info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: Caching ialarm/alarm/state until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/alarm/state' : Object with 1 keys info: Caching ialarm/sensors/state until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/state' : Array of 16 elements info: Caching ialarm/sensors/zone_1 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_1' : Object with 17 keys info: Caching ialarm/sensors/zone_2 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_2' : Object with 17 keys info: Caching ialarm/sensors/zone_3 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_3' : Object with 12 keys info: Caching ialarm/sensors/zone_4 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_4' : Object with 12 keys info: Caching ialarm/sensors/zone_5 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_5' : Object with 12 keys info: Caching ialarm/sensors/zone_6 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_6' : Object with 12 keys info: Caching ialarm/sensors/zone_7 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_7' : Object with 12 keys info: Caching ialarm/sensors/zone_8 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_8' : Object with 12 keys info: Caching ialarm/sensors/zone_9 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_9' : Object with 12 keys info: Caching ialarm/sensors/zone_10 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_10' : Object with 12 keys info: Caching ialarm/sensors/zone_11 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_11' : Object with 12 keys info: Caching ialarm/sensors/zone_12 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_12' : Object with 12 keys info: Caching ialarm/sensors/zone_13 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_13' : Object with 12 keys info: Caching ialarm/sensors/zone_14 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_14' : Object with 12 keys info: Caching ialarm/sensors/zone_15 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_15' : Object with 12 keys info: Caching ialarm/sensors/zone_16 until Sat Nov 12 2022 14:51:26 GMT+0100 (Central European Standard Time) info: sending topic 'ialarm/sensors/zone_16' : Object with 12 keys warning: Feature events is disabled info: sending topic 'homeassistant/switch/ialarm/clear_cache/config' : Object with 11 keys info: sending topic 'homeassistant/switch/ialarm/clear_discovery/config' : Object with 11 keys info: sending topic 'homeassistant/binary_sensor/ialarm/connection/config' : Object with 12 keys info: sending topic 'homeassistant/switch/ialarm/clear_triggered/config' : Object with 11 keys info: sending topic 'homeassistant/alarm_control_panel/ialarm_1/config' : Object with 13 keys info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2}

maxill1 commented 2 years ago

qualcosa il topic di stato la invia: info: sending topic 'ialarm/alarm/state', riesci a vedere da MQTT exporer o da home assistant il payload del topic quale è?

blakdog1978 commented 2 years ago

Dove cerco con Explorer ?

maxill1 commented 2 years ago

scarica http://mqtt-explorer.com/ quindi configuralo per collegarsi a mosquitto e naviga nel topic ialarm/alarm/state e leggi che cosa c'è nel payload

image

mi aspetterei un payload cosi per le centrali con GetAlarmStatus (una sola area, come la mia):

{
  "status_1": "disarmed"
}

mentre quelle con GetArea (più aree, come la vostra):

{
  "status_1": "disarmed",
  "status_2": "disarmed",
  "status_3": "disarmed",
  "status_4": "disarmed"
}
blakdog1978 commented 2 years ago

explorer

maxill1 commented 2 years ago

explorer

Ok espone solo una area.

Domanda stupida ma leggitima: quante aree hai configurato sull'addon? Dovresti mettere 4 a mano perché ialarm-mqtt non identifica da solo le centrali che supportano GetArea

server:
  areas: 4
blakdog1978 commented 2 years ago

Non mi aveva salvato le 4 zone... Scusa...

{"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]}

blakdog1978 commented 2 years ago

é cambiato anche il log...

nfo: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}] info: got 2 ' zones info' info: removeDisabledZones: filtering out zone 1 with typeId disabled {"id":1,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":1} info: removeDisabledZones: filtering out zone 2 with typeId disabled {"id":2,"name":"","type":"Disabilitata","typeId":0,"voiceId":2,"voiceName":"Ad impulsi","zone":2} info: ******** DEBUG ******* GetArea RAW: [{"Root":{"Host":{"GetArea":{"Total":{"value":"S32,4,4|4"},"Offset":{"value":"S32,0,0|0"},"Ln":{"value":"S32,0,4|4"},"L0":{"Status":{"value":"TYP,DISARM|1"}},"L1":{"Status":{"value":"TYP,DISARM|1"}},"L2":{"Status":{"value":"TYP,DISARM|1"}},"L3":{"Status":{"value":"TYP,DISARM|1"}},"Err":{}}}},"Err":"ERR|00"}] info: ******** DEBUG ******* GetArea formatted: {"areas":[{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]} error: error decoding status: status.toLowerCase is not a function on [{"id":1,"area":1,"status":1},{"id":2,"area":2,"status":1},{"id":3,"area":3,"status":1},{"id":4,"area":4,"status":1}]

maxill1 commented 2 years ago

Perfetto ho quello che mi occorre. Appena riesco aggiusto il tiro.

maxill1 commented 2 years ago

Ciao, qualche giorno fa ho rilasciato sulla versione dev dei potenziali fix. @blakdog1978 quando hai modo fammi sapere se risolve.

blakdog1978 commented 2 years ago

Ciao l'ho provata subito ma non cambia niente, il log è uguale e non rileva nessun sensore. Dici che provando a mantenere tutte le futures cambia? Perché lo sto provando con la stessa configurazione che uso sulla stable e ne ho rimosse un paio...

maxill1 commented 2 years ago

avrebbe dovuto gestire bene gli stati ARMED/DISARMED delle singole aree questa volta (perchè prima non li decodificavo). riguardo i sensori che non rileva, intendi che ci sono ma non cambia lo stato aperto/chiuso?