Git Product home page Git Product logo

Comments (11)

stanzlavos avatar stanzlavos commented on June 5, 2024

I figured out the problem : the port used for communicating were being blocked by my Raspberry Pi firewall. :)

A few observations :

  1. After I fixed the port issue, everything started to work fine. I could see the states changing in the flow tab. But after a few minutes of testing, the flows tab stop updating the ON/OFF status.

  2. Sometimes, the google home app on my phone shows the device as "offline"/"not responding", but the device itself can be turned on/off using voice commands. Why is this ?

from node-red-contrib-smartnora.

stanzlavos avatar stanzlavos commented on June 5, 2024

A few more observations :

  1. The switch NORA node outputs the payload twice occasionally. That is, when turning device the ON/OFF, the ON/OFF payload are pushed out 2 times occasionally.

  2. Sometimes everything works perfectly. If I click from the UI (dashboard), my google home app also updates the state and vice versa. Other times, the behavior is as in observation 2 mentioned in previous comment.

from node-red-contrib-smartnora.

andrei-tatar avatar andrei-tatar commented on June 5, 2024

All the symptoms indicate that node-red looses connection to firebase (this is when the devices are marked as offline). Maybe your firewall settings...

Sometimes, the google home app on my phone shows the device as "offline"/"not responding", but the device itself can be turned on/off using voice commands. Why is this ?

Because local execution still works (meaning your google home devices are connected and can talk with your local node-red instance).

from node-red-contrib-smartnora.

stanzlavos avatar stanzlavos commented on June 5, 2024

All the symptoms indicate that node-red looses connection to firebase (this is when the devices are marked as offline). Maybe your firewall settings...

Sometimes, the google home app on my phone shows the device as "offline"/"not responding", but the device itself can be turned on/off using voice commands. Why is this ?

Because local execution still works (meaning your google home devices are connected and can talk with your local node-red instance).

Thank you for the input, and sorry for the delay in responding. :)

The connectivity was the problem. I was, in general, facing some random connectivity issues (packets being dropped by the EPON unit in my home). Everything seems to be working fine now.

Thanks once again. :)

from node-red-contrib-smartnora.

stanzlavos avatar stanzlavos commented on June 5, 2024

I am still getting the "Not Responding" problem occasionally. :( I don't have any network problems as of now, so I can't think of any reason for node-red to loose connection with firebase. Once I deploy the nodes once more, usually the problem goes away. In this state, voice commands still works : flows are triggered but my google assistant itself announces that the device is not available. And, the device is shown as "Not Responding" in the Home app. Any suggestions ?

And, IIRC, I have not seen the multiple trigger problem in quite a few days, but it seems to have started again. I get multiple triggers when turning the switch on/off via google. Is this expected ?

As per the FAQ, I have opened the following ports on my Raspberry Pi (default is to allow outgoing and drop incoming):

6988 - used to broadcast the discovery packet from Google Home
6987 - used to send commands from Google Home to Smart NORA

Are there any more ports that needs to be opened ?

from node-red-contrib-smartnora.

andrei-tatar avatar andrei-tatar commented on June 5, 2024

Do you have firewall rules on the outgoing traffic from node-red?
The online state is set to false automatically by the database. Node-red stays connected to the database and it has a last will that tells the database to set online to false when the client is disconnected. Not sure how firebase detects if a connection is lost but I assume they use a periodic ping-pong mechanism with a timeout. This entire logic and the reconnect part is abstracted away.
I can add more logs to show when the connection is made/lost, maybe it will help you debug.
Also the DB location is in Belgium.

from node-red-contrib-smartnora.

stanzlavos avatar stanzlavos commented on June 5, 2024

The firewall on my RPi4 is set to allow all outgoing traffic. For incoming messages I have explicitly added rules to accept traffic towards the ports I mentioned in my previous post (among others). Are there any more ports that needs to be opened ?

Regarding the state : who maintains the actual state of the switch? Is it maintained by the switch instance in node-red or in the DB (in Belgium)? Either way, its the sync to Google that is failing I suppose. Does this sync then happen between the Google framework and node-red directly or is the implementation such that this sync happens between google and smart nora DB in Belgium?

And about the logging part : Thank you for the offer and I'd gladly accept. :D How do we go about this though? Is there something I can do myself to enable more logs or add more logs?

from node-red-contrib-smartnora.

andrei-tatar avatar andrei-tatar commented on June 5, 2024

Are there any more ports that needs to be opened ?

Not as far as I know. :)

who maintains the actual state of the switch? Is it maintained by the switch instance in node-red or in the DB (in Belgium)

It's in both places. Each time a change happens in the local node, an update is pushed to the db. When you open the Google Home app, google sends a query intent to the cloud service and the state is resolved from the db.

And about the logging part : Thank you for the offer and I'd gladly accept. :D How do we go about this though? Is there something I can do myself to enable more logs or add more logs?

I'll create a new branch and send you the details but it will probably be in > 7 days. I'm out with personal stuff until then.

from node-red-contrib-smartnora.

stanzlavos avatar stanzlavos commented on June 5, 2024

It's in both places. Each time a change happens in the local node, an update is pushed to the db. When you open the Google Home app, google sends a query intent to the cloud service and the state is resolved from the db.

So, if we assume that my internet connection is working properly (:D), if Google is not able to get the device status, it has to be due to an issue in connectivity between Google and the DB ?

I'll create a new branch and send you the details but it will probably be in > 7 days. I'm out with personal stuff until then.

I am glad that you even offered to help. :P Anyhow, please do not do anything as of now. Let me monitor things for a few more days. We will keep this as a last resort. :)

from node-red-contrib-smartnora.

andrei-tatar avatar andrei-tatar commented on June 5, 2024

So, if we assume that my internet connection is working properly (:D), if Google is not able to get the device status, it has to be due to an issue in connectivity between Google and the DB ?

No, it must be an issue in the connectivity between your node-red and nora cloud service (actually the firebase realtime database - since this is what triggers the devices to be marked as offline). The connection between google and the db is more than 99.9% of the time up and running.

I am glad that you even offered to help. :P Anyhow, please do not do anything as of now. Let me monitor things for a few more days. We will keep this as a last resort. :)

Any news?

from node-red-contrib-smartnora.

stanzlavos avatar stanzlavos commented on June 5, 2024

I haven't seen the issue in quite some time. Will close the issue for the time being. Thanks for the support. :)

from node-red-contrib-smartnora.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.