Giter Site home page Giter Site logo

nebulous / infinitude Goto Github PK

View Code? Open in Web Editor NEW
219.0 52.0 47.0 2.83 MB

Open control of Carrier/Bryant thermostats

License: MIT License

Makefile 0.14% C 14.58% Perl 33.54% JavaScript 20.81% HTML 27.16% CSS 1.49% Shell 0.97% Dockerfile 0.87% Raku 0.43%
thermostat home-automation api-rest carrier bryant infinity ioncomfort home-assistant

infinitude's People

Contributors

amunter-nist avatar cacktopus avatar drdeke avatar jokajak avatar leviharrison avatar mamarley avatar mattster98 avatar mizterb avatar mtreinish avatar nebulous avatar sbrown4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

infinitude's Issues

missing templates

i followed the (new) instructions for install and still have the following errors executing infinitude:

[Wed Oct 26 14:16:45 2016] [debug] GET "/systems.json"
[Wed Oct 26 14:16:45 2016] [debug] Routing to a callback
[Wed Oct 26 14:16:45 2016] [debug] Template "key.json.ep" not found
[Wed Oct 26 14:16:45 2016] [debug] Template "not_found.development.json.ep" not found
[Wed Oct 26 14:16:45 2016] [debug] Template "not_found.json.ep" not found
[Wed Oct 26 14:16:45 2016] [debug] Template "not_found.development.html.ep" not found
[Wed Oct 26 14:16:45 2016] [debug] Rendering cached template "not_found.html.ep" from DATA section
[Wed Oct 26 14:16:45 2016] [debug] 404 Not Found (0.010761s, 92.928/s)

Question: pulling currentActivity from status

First thank you for answering & fixing my last question on the man-in-the-middle issue.
Sorry to ask what is likely a basic question.
I have been able to change activity, holds, & settings ; as well as get status on many things, but am frustrated in how you are getting the currentActivity from status.
I can get the complete status but it does not seem to hold the currentActivity yet you have it on your status page.
Spent a few hours in your code but am new to JSON & modilicious & cannot seem to figure the hierarchy.
Seems to me the get should be something like:
10.0.1.15/config/1/currentActivity but not only does that not work but does not seem to be in the status definition like that.
would you mind taking a minute to answer ; sorry for the bother but am frustrated.
thanks so much.

Debugging new serial setup

Hi,

I'm new to infinitude, but not new to Unix/linux, shell scripts, etc. I'm not deeply familiar with Perl, and am having trouble getting data to show-up in my infinitude site.

Here's what I have and what I've done:

  • Raspberry Pi 3 running just fine, connected to network, etc.
  • rs485 USB adapter installed and loading at /dev/ttyUSB0
  • A/B wires connected using Cat 6 cable from ports A/B to RS485 adapter
  • Infinitude installed and runs properly (e.g., base website seems to render)
  • Compiled cardump and seem to be getting frames (see attached)

Would appreciate any thoughts on being able to see / display status?

frames.txt
infinitudescreenshot

Consider moving to separate config file to allow github syncing of infinitude?

In my branch i played with the idea of having a separate config file from the main script. the idea being the config file could be constant even during infinitude github syncs.

Could you accept or reject the idea so i can know to switch back to your branch (as i can't program and don't really have a clue :-) )

Control "Away" Status via infinitude

The SAM has a command for setting a zone unoccupied to change from Home to Away. Can this functionality be added to infinitude so that I can change home/away status via Google calendar? Thanks!

Status Screen reports: {{ notifications.notification[0].message[0] }} {{ notifications.notification[0].timestamp[0] | date:"EEE yyyy-MM-dd 'at' h:mma" }}

I have data flowing. The serial looks correct, and I see my fan coil, my thermostat, and something that the project is needing some data from, a device id 128, which is a NIM on my geothermal dumb unit.

What I expect to see:
I would see temp and humidity at least since I have that data on my thermostat.

What I am seeing instead:
The humidity gauge looks like it defaults on the status screen to show up when I don't have a the serial hooked up. But with the message above, there are no gauges showing. Just this error message.

I have a non wifi older black and white infinity non touch thermostat.
Thanks

Joe

Rest calls to change mode?

It looks like right now I can only change settings for predefined profiles and schedules, but if I wanted to have a remote system be able to trigger holding a different profile (ie, a vera or similar zwave controller has rest api abilities), would that be possible?

Being able to have that system toggle between home, away, sleep, wake would be before and allow for one to use the motion detection / sensors / scene capabilities of the vera to handle figuring out which is the right profile for the moment.

Can't call method "emit" ...

SYSTEM: SYSTXCCITC01-A Let me know if you need additional detail to figure this out.

Web page Globe turns green for a very short time, then I get an error for some kind of perl timer.
Error repeats on repeated web page pulls on port 80

[Sun Feb 26 21:28:16 2017] [info] Listening at "http://192.168.1.136:80"
Server available at http://192.168.1.136:80

Mojo::Reactor::EV: Timer failed: Can't call method "emit" on an undefined value at /usr/local/share/perl/5.20.2/Mojo/IOLoop/Stream.pm line 72.

Mojo::Reactor::EV: Timer failed: Can't call method "emit" on an undefined value at /usr/local/share/perl/5.20.2/Mojo/IOLoop/Stream.pm line 72.

pi@raspberrypi:~/cardump$ ./cardump </dev/ttyUSB0

``
pi@raspberrypi:~/infinitude/contrib/cardump$ ./cardump </dev/ttyUSB0 
Time    From    To      Type    Length  Hex Content
--------------WRITE_REQ to f1 ------------
Write to table 2, row 2
14 2d 01 ff f1 00 
Time is 20:45
1488246363      20      f1      0c      6       00 02 02 14 2d 01 
ASCII TRANSLATION:
                                                                  
--------------WRITE_REQ to f1 ------------
Write to table 2, row 3
1b 02 11 d3 f2 00 
Date is 2017-2-27
1488246363      20      f1      0c      6       00 02 03 1b 02 11 
ASCII TRANSLATION:
                                                                  
--------------WRITE_REQ to 40 ------------
Write to table 3, row 29
01 20 5b d3 
1488246363      20      40      0c      4       00 03 1d 01 
ASCII TRANSLATION:
                                                            
--------------REPLY to 20 ------------
1488246363      40      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 40 ------------
Write to table 3, row 5
00 00 00 00 00 00 00 00 00 00 00 78 a3 78 00 
1488246363      20      40      0c      15      00 03 05 00 00 00 00 00 00 00 00 00 00 00 78 
ASCII TRANSLATION:
                                                                                           x 
--------------REPLY to 20 ------------
1488246363      40      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 40 ------------
Write to table 4, row 3
00 01 01 00 cd a7 00 
1488246363      20      40      0c      7       00 04 03 00 01 01 00 
ASCII TRANSLATION:
                                                                     
--------------REPLY to 20 ------------
1488246363      40      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 40 ------------
Write to table 4, row 9
00 01 00 00 54 36 00 
1488246363      20      40      0c      7       00 04 09 00 01 00 00 
ASCII TRANSLATION:
                                                                     
--------------REPLY to 20 ------------
1488246363      40      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 40 ------------
Write to table 4, row 11
00 00 00 00 7c 36 00 
1488246363      20      40      0c      7       00 04 0b 00 00 00 00 
ASCII TRANSLATION:
                                                                     
--------------REPLY to 20 ------------
1488246363      40      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 40 ------------
Write to table 3, row 7
00 00 00 00 6d 80 00 
1488246363      20      40      0c      7       00 03 07 00 00 00 00 
ASCII TRANSLATION:
                                                                     
--------------REPLY to 20 ------------
1488246363      40      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------READ_REQ from 40 ------------
Request for table 1, row 4
1488246363      20      40      0b      3       00 01 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246364      40      20      06      123     00 01 04 56 41 52 49 41 42 4c 45 20 53 50 45 45 44 20 46 55 52 4e 41 43 45 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 45 53 52 31 33 31 34 37 36 2d 32 34 20 20 20 35 39 4d 4e 37 41 31 32 30 56 32 34 31 32 32 32 00 00 00 00 31 34 32 35 4e 2d 2d 2d 2d 2d 2d 20 32 36 31 34 41 34 38 39 35 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                          V  A  R  I  A  B  L  E     S  P  E  E  D     F  U  R  N  A  C  E                                                                                C  E  S  R  1  3  1  4  7  6     2  4           5  9  M  N  7  A  1  2     V  2  4  1  2  2  2              1  4  2  5  N                       2  6  1  4  A  4  8  9  5  3                                           
--------------READ_REQ from 50 ------------
Request for table 1, row 4
1488246364      20      50      0b      3       00 01 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246364      50      20      06      123     00 01 04 45 56 45 52 45 53 54 20 54 57 4f 20 43 41 50 41 43 49 54 59 20 4f 44 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 45 53 52 31 33 31 33 39 30 2d 31 31 20 20 00 32 34 41 4e 42 31 34 38 41 30 30 33 31 30 33 30 00 00 00 00 32 34 31 35 4e 34 31 34 36 33 39 20 32 38 31 35 45 31 33 35 33 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                          E  V  E  R  E  S  T     T  W  O     C  A  P  A  C  I  T  Y     O  D  U                                                                          C  E  S  R  1  3  1  3  9        1  1           2  4  A  N  B  1  4  8  A        3  1     3                 2  4  1  5  N  4  1  4  6  3  9     2  8  1  5  E  1  3  5  3  7                                           
--------------READ_REQ from 40 ------------
Request for table 3, row 6
1488246364      20      40      0b      3       00 03 06 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246364      40      20      06      13      00 03 06 01 00 00 00 00 00 00 08 3e 00 
ASCII TRANSLATION:
                                                                                  >    
--------------READ_REQ from 40 ------------
Request for table 3, row 10
1488246364      20      40      0b      3       00 03 0a 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246364      40      20      06      17      00 03 0a 01 75 75 03 00 51 00 75 00 00 10 10 01 14 
ASCII TRANSLATION:
                                                             u  u        Q     u                   
--------------READ_REQ from 50 ------------
Request for table 62, row 1
1488246364      20      50      0b      3       00 3e 01 
ASCII TRANSLATION:
                                                    >    
--------------REPLY to 20 ------------
Outside Temp: 51f 033b
Outside Coil: 51f 0334
1488246364      50      20      06      16      00 3e 01 03 3b 03 34 03 ff 03 ff 00 00 01 01 3c 
ASCII TRANSLATION:
                                                    >        ;     4                          < 
--------------READ_REQ from 40 ------------
Request for table 4, row 4
1488246364      20      40      0b      3       00 04 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246364      40      20      06      21      00 04 04 10 78 00 06 02 07 00 00 00 00 00 00 00 00 00 0a 00 00 
ASCII TRANSLATION:
                                                             x                                                 
--------------READ_REQ from 40 ------------
Request for table 4, row 13
1488246364      20      40      0b      3       00 04 0d 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246364      40      20      06      9       00 04 0d 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                                           
--------------READ_REQ from 40 ------------
Request for table 1, row 4
1488246366      20      40      0b      3       00 01 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246366      40      20      06      123     00 01 04 56 41 52 49 41 42 4c 45 20 53 50 45 45 44 20 46 55 52 4e 41 43 45 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 45 53 52 31 33 31 34 37 36 2d 32 34 20 20 20 35 39 4d 4e 37 41 31 32 30 56 32 34 31 32 32 32 00 00 00 00 31 34 32 35 4e 2d 2d 2d 2d 2d 2d 20 32 36 31 34 41 34 38 39 35 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                          V  A  R  I  A  B  L  E     S  P  E  E  D     F  U  R  N  A  C  E                                                                                C  E  S  R  1  3  1  4  7  6     2  4           5  9  M  N  7  A  1  2     V  2  4  1  2  2  2              1  4  2  5  N                       2  6  1  4  A  4  8  9  5  3                                           
--------------READ_REQ from 50 ------------
Request for table 1, row 4
1488246366      20      50      0b      3       00 01 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246366      50      20      06      123     00 01 04 45 56 45 52 45 53 54 20 54 57 4f 20 43 41 50 41 43 49 54 59 20 4f 44 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 45 53 52 31 33 31 33 39 30 2d 31 31 20 20 00 32 34 41 4e 42 31 34 38 41 30 30 33 31 30 33 30 00 00 00 00 32 34 31 35 4e 34 31 34 36 33 39 20 32 38 31 35 45 31 33 35 33 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                          E  V  E  R  E  S  T     T  W  O     C  A  P  A  C  I  T  Y     O  D  U                                                                          C  E  S  R  1  3  1  3  9        1  1           2  4  A  N  B  1  4  8  A        3  1     3                 2  4  1  5  N  4  1  4  6  3  9     2  8  1  5  E  1  3  5  3  7                                           
--------------READ_REQ from 40 ------------
Request for table 3, row 6
1488246367      20      40      0b      3       00 03 06 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      40      20      06      13      00 03 06 01 00 00 00 00 00 00 08 3e 00 
ASCII TRANSLATION:
                                                                                  >    
--------------READ_REQ from 40 ------------
Request for table 3, row 10
1488246367      20      40      0b      3       00 03 0a 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      40      20      06      17      00 03 0a 01 75 75 03 00 51 00 75 00 00 10 10 01 14 
ASCII TRANSLATION:
                                                             u  u        Q     u                   
--------------READ_REQ from 50 ------------
Request for table 62, row 1
1488246367      20      50      0b      3       00 3e 01 
ASCII TRANSLATION:
                                                    >    
--------------REPLY to 20 ------------
Outside Temp: 51f 033b
Outside Coil: 51f 0334
1488246367      50      20      06      16      00 3e 01 03 3b 03 34 03 ff 03 ff 00 00 01 01 3c 
ASCII TRANSLATION:
                                                    >        ;     4                          < 
--------------READ_REQ from 50 ------------
Request for table 3, row 4
1488246367      20      50      0b      3       00 03 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      50      20      06      27      00 03 04 01 18 00 3c 01 17 00 d6 01 41 0a f4 01 42 00 00 01 43 00 00 00 44 00 00 
ASCII TRANSLATION:
                                                                   <                 A           B           C           D       
--------------READ_REQ from 40 ------------
Request for table 3, row 13
1488246367      20      40      0b      3       00 03 0d 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      40      20      06      10      00 03 0d 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                                              
--------------READ_REQ from 50 ------------
Request for table 3, row 13
1488246367      20      50      0b      3       00 03 0d 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      50      20      06      10      00 03 0d 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                                              
--------------READ_REQ from 40 ------------
Request for table 3, row 22
1488246367      20      40      0b      3       00 03 16 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      40      20      06      17      00 03 16 00 02 00 00 00 00 00 00 01 78 01 00 03 6b 
ASCII TRANSLATION:
                                                                                     x           k 
--------------READ_REQ from 40 ------------
Request for table 4, row 2
1488246367      20      40      0b      3       00 04 02 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      40      20      06      36      00 04 02 5a 78 96 b4 78 1d 35 89 84 fd 1d 32 9b 6d 20 1d b4 5d ba 4a 1d 00 00 00 00 03 02 05 b1 03 d0 28 00 
ASCII TRANSLATION:
                                                          Z  x        x     5              2     m           ]     J                                        
--------------READ_REQ from 40 ------------
Request for table 4, row 9
1488246367      20      40      0b      3       00 04 09 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      40      20      06      7       00 04 09 00 01 00 00 
ASCII TRANSLATION:
                                                                     
--------------READ_REQ from 40 ------------
Request for table 3, row 2
1488246367      20      40      0b      3       00 03 02 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246367      40      20      06      15      00 03 02 04 11 00 00 00 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                                                             
--------------WRITE_REQ to 50 ------------
Write to table 62, row 10
00 22 b8 c9 42 00 
1488246368      20      50      0c      6       00 3e 0a 00 22 b8 
ASCII TRANSLATION:
                                                    >             
--------------REPLY to 20 ------------
1488246368      50      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 50 ------------
Write to table 62, row 2
00 b9 98 c9 
1488246368      20      50      0c      4       00 3e 02 00 
ASCII TRANSLATION:
                                                    >       
--------------REPLY to 20 ------------
1488246368      50      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 50 ------------
Write to table 62, row 3
02 39 c9 c9 
1488246368      20      50      0c      4       00 3e 03 02 
ASCII TRANSLATION:
                                                    >       
--------------REPLY to 20 ------------
1488246368      50      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 50 ------------
Write to table 5, row 15
00 00 00 00 9c 2b 00 
1488246368      20      50      0c      7       00 05 0f 00 00 00 00 
ASCII TRANSLATION:
                                                                     
--------------REPLY to 20 ------------
1488246368      50      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------WRITE_REQ to 50 ------------
Write to table 5, row 16
00 00 00 00 09 e9 00 
1488246368      20      50      0c      7       00 05 10 00 00 00 00 
ASCII TRANSLATION:
                                                                     
--------------REPLY to 20 ------------
1488246368      50      20      06      1       00 
ASCII TRANSLATION:
                                                   
--------------READ_REQ from 40 ------------
Request for table 1, row 4
1488246369      20      40      0b      3       00 01 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246369      40      20      06      123     00 01 04 56 41 52 49 41 42 4c 45 20 53 50 45 45 44 20 46 55 52 4e 41 43 45 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 45 53 52 31 33 31 34 37 36 2d 32 34 20 20 20 35 39 4d 4e 37 41 31 32 30 56 32 34 31 32 32 32 00 00 00 00 31 34 32 35 4e 2d 2d 2d 2d 2d 2d 20 32 36 31 34 41 34 38 39 35 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                          V  A  R  I  A  B  L  E     S  P  E  E  D     F  U  R  N  A  C  E                                                                                C  E  S  R  1  3  1  4  7  6     2  4           5  9  M  N  7  A  1  2     V  2  4  1  2  2  2              1  4  2  5  N                       2  6  1  4  A  4  8  9  5  3                                           
--------------READ_REQ from 50 ------------
Request for table 1, row 4
1488246369      20      50      0b      3       00 01 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246369      50      20      06      123     00 01 04 45 56 45 52 45 53 54 20 54 57 4f 20 43 41 50 41 43 49 54 59 20 4f 44 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 45 53 52 31 33 31 33 39 30 2d 31 31 20 20 00 32 34 41 4e 42 31 34 38 41 30 30 33 31 30 33 30 00 00 00 00 32 34 31 35 4e 34 31 34 36 33 39 20 32 38 31 35 45 31 33 35 33 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
ASCII TRANSLATION:
                                                          E  V  E  R  E  S  T     T  W  O     C  A  P  A  C  I  T  Y     O  D  U                                                                          C  E  S  R  1  3  1  3  9        1  1           2  4  A  N  B  1  4  8  A        3  1     3                 2  4  1  5  N  4  1  4  6  3  9     2  8  1  5  E  1  3  5  3  7                                           
--------------READ_REQ from 40 ------------
Request for table 3, row 6
1488246370      20      40      0b      3       00 03 06 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246370      40      20      06      13      00 03 06 01 00 00 00 00 00 00 08 3e 00 
ASCII TRANSLATION:
                                                                                  >    
--------------READ_REQ from 40 ------------
Request for table 3, row 10
1488246370      20      40      0b      3       00 03 0a 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246370      40      20      06      17      00 03 0a 01 75 75 03 00 51 00 75 00 00 10 10 01 14 
ASCII TRANSLATION:
                                                             u  u        Q     u                   
--------------READ_REQ from 50 ------------
Request for table 62, row 1
1488246370      20      50      0b      3       00 3e 01 
ASCII TRANSLATION:
                                                    >    
--------------REPLY to 20 ------------
Outside Temp: 51f 033b
Outside Coil: 51f 0334
1488246370      50      20      06      16      00 3e 01 03 3b 03 34 03 ff 03 ff 00 00 01 01 3c 
ASCII TRANSLATION:
                                                    >        ;     4                          < 
--------------READ_REQ from 40 ------------
Request for table 4, row 4
1488246371      20      40      0b      3       00 04 04 
ASCII TRANSLATION:
                                                         
--------------REPLY to 20 ------------
1488246371      40      20      06      21      00 04 04 10 78 00 06 02 07 00 00 00 00 00 00 00 00 00 0a 00 00 
ASCII TRANSLATION:
                                                             x                                                 
--------------READ_REQ from 40 ------------
Request for table 4, row 13
1488246371      20      40      0b      3       00 04 0d 
ASCII TRANSLATION:

request: selectable displays on status page?

I don't have outside, coil, airflow or blower speed (as the person who fitted the AC never ran a bus out to the AC) it would be great if could turn the display of these off and replace with zone data. Is there an display control you could switch too that would allow adding / removing of each 'speedo control'?

Profiles page does not show what scheduled profile in in effect.

On the profiles page if zone 1 is set to hold and manual on the thermostat then the zone shows display on the profiles page shows hold = checked and the drop down manual and the until time.

For zone 2 and 3 they show nothing in these fields even though the zone is set as per schedule and i think the away profile.

setting profiles dynamically.

My house can already do a number of things when different trigger events occur. I'm working on dynamically setting the hvac profiles based on events such as arriving/leaving the home.

outside of the infinity's preprogrammed schedule I can set profiles using the HOLD UNTIL commands to adjust for fluctuations in schedules. for example:
'http://192.168.1.248:3000/api/1/hold?activity=away&until="16:45"
how can i set UNTIL to the "per schedule" option to cancel a current hold?

Humidity goes to NaN

if there interfaces remains open, eventually the humidity output goes to NaN.
image
rh in the table below remains an actual number
image

Adding Bryant Support

Looks like a bunch of addresses in xml files in the defs directory need to be changed to api.eng.bryant.com? Also I have an FE4AF005 fan coil which is also a carrier part number, so maybe the same address as the one you used? My heat pump is a 288BNV037 which is the same as Carrier part number 25VNA837. Once I get the RS485 I can watch for the traffic, I think, and see the addresses.

Use of uninitialized value error when trying to set hold

I get two errors when I try to set the hold temperature of the thermostat. It also does not seem to set anything in the thermostat. I am using the Carrier Infinity model without a serial connection.

I get two errors:
'Use of uninitialized value in string eq at ./infinitude line 128.'
'Use of uninitialized value in lc at ./infinitude line 132.'

The request I am making is (using postman):
POST http://*:80/api/1/hold

Sent as raw data in PostMan
activity=manual
htsp=73
until=14:00

Missing Status Information

We have a brand new 3 ton Greenspeed heat pump and modulating gas furnace. When I callup the index.html file I do not see the same information as shown in the readme file. The coil temperature, airflow and blower speed are missing. The status and systems xml files do not contain this running status information either.

How can I get the heat pump and furnace running status information?

John

ASCII Protocol Information

Just wondering if anyone has seen this document. Might make uncovering the meanings of the ASCII commands and responses a little easier.

Let me know if this helps, I have access to more documentation if need be.

Don't show humidity for each zone.

It seems from the documentation that even with smart sensors there is only one humidity for the whole system. As such there is no point showing humidity for each zone. Consider moving humidity from the per zone section of the display to global display section.

Vacation editor

This is going to be the next thing i would like to get working on my project. I don't use the infinitude interface but rather just its ability to pull and push data to the HVAC system. Its a shame Carrier doesn't expose an api.

The project i am working on is a complete home automation system. That works with a number of python scripts, IFTTT triggers, Alexa commands and web interface buttons.

Right now, using geo-loaction via my iphone the house "knows" if im home or away. and i use the GET commands to update the HVAC profile accordingly to adjust for fluctuations in my schedule. I have what is known as a "VACATION" mode that automates the lights in the house when im away (25 Hues bulbs). All that i would need in the infinitude vacation implementation is the ability to push an end datetime to HVAC system. something similar to hod the activity hold current works. i'm thinking something like
'http://192.168.1.248:3000/api/1/hold?activity=vacation&until="2017-03-31T19:26:18Z"

i'd be willing to work on it if you can get me started.

My project's interface.
image

Device 65 seen in serial stream but not logged to the state table UI?

I have a device 96 and device 65 that i see in the stream. Not sure what the devices are - likely the damper control or possibly the 2 zone temperature sensors.

96 is logged in the state table the 65 isn't logged in the state table FWIW, i assume this is low prio issue but i know you are generally interested in the serial stuff.

Running in production mode:

pi@raspberrypi:~/infinitude $ ./infinitude daemon -m production
Using /dev/ttyUSB0 serial interface
[Mon Oct 31 11:51:54 2016] [info] Listening at "http://*:3000"
Server available at http://127.0.0.1:3000
Mojo::Reactor::EV: Timer failed: Can't call method "emit" on an undefined value at /usr/local/share/perl/5.20.2/Mojo/IOLoop/Stream.pm line 72.
Mojo::Reactor::EV: Timer failed: Can't use an undefined value as a symbol refere nce at /usr/local/share/perl/5.20.2/Mojo/Reactor/EV.pm line 34.
[Mon Oct 31 12:17:58 2016] [error] Can't use an undefined value as a symbol refe rence at /usr/local/share/perl/5.20.2/Mojo/Reactor/EV.pm line 34.

gaining access to everything by using systems/infinitude

so i think I've come across a different way to interact with the api, that would give me complete control over the entire system.
http://192.168.1.248:3000/systems/infinitude
returns and xml file of the entire system's configuration. I've noticed that the Infinitude schedule editor pushes a json version of this xml file to the same address http://192.168.1.248:3000/systems/infinitude

what i can't figure out is how to convert the XML to JSON so that i can push my own edits back to infinitude. is there a particular json convention that you use that i can look for. for example Abdera, BadgerFish, Cobra, GData, Yahoo, Parker dont seem to fit what you push.

is there a way to pull /systems/infinitude in a json format so i don't need to mess with xml?

Move configuration to a separate file

Several people have been annoyed by the lazy way in which configuration is handled. Move it into a separate file, ideally using the same storage mechanism that other state is stored within such that it can be edited via the web interface, or at the very least doesn't require another dependency.

Hold until not coming off

I've been using the hold until call and the thermostat has recently stopped going to "per schedule" after the hold time has past. Is there a date value that should be used? Any help trouble shooting this would be helpful.

Background: I use wake, home and sleep scheduled everyday. When I leave the house a script automatically set the away profile to the next closest 15 minute mark. When I return home the script sets the profile to home. The hold is still in effect and used to run out at stay with the home profile until the next schedule sleep time. Recently the hold stays in affect after the hold time and this cause it to stay in the home profile.

Is infinitude compatible with INFINITY® SYSTEM CONTROL SYSTXCCITC01-B Thermostat

I have a Rasberry pi up and running. The thermostat has had it wireless proxy updated to the IP of the Raspberry port 3000. In a browser, if I use the loopback IP I get this display:

Status
Comfort Profiles
Schedules
Serial
About
∞ Infinitude
Infinitude on github

The results of the console session when I was installing the bits are attached.

Also, I wonder if the model thermostat is compatible?

Any help will be appreciated very much.

-rick

log.txt

Multiple Carrier Units

Does Infinitude support multiple thermostats (i.e. multiple HVAC units). It appears to only support one for a given instance of infinitude, or am I missing something. It is working with multiple zones within a single touch thermostat, but my use case is multiple touch screen thermostats, each with multiple zones.

If I enable both the result I get are thermostat 1 shows up on the status page, but thermostat 2 zones show up on the comfort profile and schedule page.

Recreating the web requests

Hi @nebulous -

First of all, thanks so much for all the work on this. I have started hacking with it a bit and its pretty awesome everything that you have working in here.

I am currently working on writing a bridge between infinitude and homebridge and was interested in bypassing the cache and Mojolicious app and just rewrite the requests that infinitude is currently making in Javascript, or even another language.

I am new to Perl and Mojolicious and am struggling a bit to figure out from where you are getting values like the consumer key and some other values for authorization.

Could you help me find where this and the oauth secret live?

Thanks! 🚀 🌡

MOJO EMIT error.

Using
JBtek USB to RS485 Converter Adapter ch340T chip 64-bit Window 7 Supported on a Raspberian Pi per instructions.
The instructions seem to omit the necessary sudo here:

./infinitude daemon -m production -l http://192.168.1.232:80

However, I do this now:

sudo ./infinitude daemon -m production -l http://192.168.1.232:80
and get errors as follows;

pi@raspberrypi:~/infinitude$ sudo ./infinitude daemon -m production -l http://192.168.1.136:80
Using /dev/ttyAMA0 serial interface
[Sat Feb 25 19:12:21 2017] [info] Listening at "http://192.168.1.136:80"
Server available at http://192.168.1.136:80

Then everything is quiet. So when I point a browser at this address, I get this
15
img_1695
seconds later:

Mojo::Reactor::EV: Timer failed: Can't call method "emit" on an undefined value at /usr/local/share/perl/5.20.2/Mojo/IOLoop/Stream.pm line 72.
Mojo::Reactor::EV: Timer failed: Can't use an undefined value as a symbol reference at /usr/local/share/perl/5.20.2/Mojo/Reactor/EV.pm line 34.

Where do I look to address this?
Also, the instructions say to set the proxy on the thermostat. Its unclear whether this should be the same port as the GUI (80).

img_1694

pi@raspberrypi:/dev$ ls -tl |head
I'm guessing that there is some stream that ins't getting connected....maybe a bad AMA0 device....on the other hand, it is clear the raspberry pi interface comes up as expected....

crw-rw-rw- 1 root tty 5, 2 Feb 25 19:31 ptmx
prw-r----- 1 root adm 0 Feb 25 19:30 xconsole
crw--w---- 1 root tty 204, 64 Feb 25 19:18 ttyAMA0
crw--w---- 1 root tty 4, 1 Feb 25 19:18 tty1
drwxr-xr-x 2 root root 2460 Feb 25 19:18 char
drwxr-xr-x 4 root root 80 Feb 25 19:18 serial
crw-rw---- 1 root dialout 188, 0 Feb 25 19:18 ttyUSB0
crw--w---- 1 root tty 4, 5 Feb 25 19:18 tty5
crw--w---- 1 root tty 4, 6 Feb 25 19:18 tty6

Couple questions about display, data and wunderground

Thanks for your work, i have it working completely almost....

I do not have the serial bus reading as im just using the wifi to connect. all the test passed. But i have some questions to help be better understand the whole thing, before i start adding in other smart objects to the gui.

  1. Where does the "Outside" "Blower" "Coil" and "Airflow" data come from in your screenshot, should those graphs be showing when connected by wifi only or are they only accessible off the serial bus?
    image

  2. I also have some display errors, with words overlapping, as you can see in the picture. This may be able to be adjusted in a css file. I have tried a giant 4k monitor and it still displays that way.

  3. lastly, i added my wunderground key to the config section in infinitude as well as in the infinitude.json file. How do i know if it's pulling data from there. Are there any maps on the front end or is it all backend data? Is wunderground data populating my actual weather information on the wall mounted infinity control unit?

Can't find bower_components?

I followed the Wiki steps for installing on a raspberry PI. However, when I navigate the server with a web browser, most of the UI components fail to load. There are lot of loading errors from 'bower_components'. That directory doesn't seem to be present in the 'public' directory. Am I missing a dependency or build step?

Getting stream and state data but no status

When I visit the status page I get this in the console. Raspi running Raspbian Stretch

Mojo::Reactor::EV: I/O watcher failed: Can't use an undefined value as a symbol reference at /usr/share/perl5/Mojo/Reactor/EV.pm line 34.

Gui shows only global humidity and it's all gray.

Able to read data, but not set

I am only using the proxy capability and not the serial bus capability to interface with my system. I am able to see the schedule and all of the current values for the system. I have tried changing the mode of the system (from away to home) and it is not changing. I have tried this through the webui, and also via a get request. Neither reflect the changes on the system. Please let me know what I can provide to help investigate this. One thing to note, I did update my system recently, with an update from Carrier.

Issue running the app

When I ./infinitude --help or any other command line, it dies with the following error:
Use of uninitialized value $ENV{"MOJO_MODE"} in string eq at ./infinitude line 49.

I see this is just what it says; a default should be set however.

Where are some key values?

Can you make a list of known values? Like in what table / row is the outdoor temperature found?

Are there known set points?

problems with Mojo

in infinitude/infinitude:
serial_tty => '/dev/ttyAMA0', #RS485 serial tty interface
In the
../state/infinitude.js:
{"app_secret":"Pogotudinal","pass_reqs":0,"serial_tty":"/dev/ttyAMA0","044841ec6ac9c9f5":""}

YIKES!
pi@raspberrypi:~/infinitude$ ./infinitude daemon -m production -l http://192.168.136:80
Using /dev/ttyAMA0 serial interface

Why this?
Can't create listen socket: Cannot assign requested address at /usr/local/share/perl/5.20.2/Mojo/IOLoop.pm line 126.
pi@raspberrypi:~/infinitude$

I often have to kick start the serial stream by manually running readraw.py from brybus?

I noticed my state was 8mo old.

My Pi has been rebooted maybe a hundred times in that time. The stream would not flow in the web page. today i pulled the USB multiple times - no help. I pulled the USB and pulled the power from the pi. No help.

However once i ran readraw.py and saw it was scanning the bus I went back into the infinitude serial webpage and hit refresh - bang it was working.

I recall seeing this when i first setup infinitude too. Any ideas? One of those things? Was it the hard reboot that might have been the trick? something else?

Proxy through to the "regular" IOS app provided by Carrier's myinfiniti IOS application

Would you consider adding a proxy capability, so this infinitude web service (running on a LINUX box) acts as a man-in-the-middle so the provided IOS apps still work, while enabling me to say, add Amazon Echo Skills?

Also I'm a bit unclear about this solution. Do I need the serial interface? Some version of this just runs on a web server, correct?

This is fantastic....I spent a fortune on a new carrier system and the first thing they did was remove my Nest. And of course failed to provide to me the API specification. I complained clearly to them an open interface is REQUIRED and it was very misleading how they sold me one of those crappy myinfinity thermostats.

Wiki instructions did not work for Rasbian Strech (Solved)

My Infinitude Raspberry pi stopped working after a power outage. It had been working great for almost a year. In the meantime I had forgotten the password. Dumb! Anyway I started over with the current version of Rasbian Stretch lite. After much trial and error I got Infinitude working using the following steps. YMMV!

I followed the instructions for the Raspberry pi in the wiki but ran into problems. The Weather Underground module didn't install correctly. It complained about needing inc::Module::Install, etc. While not a complete Linux noob this was beyond me.

After a bit of Googling I read about possible compiler incompatibilities. Not sure it was necessary but I installed gcc 4.7

sudo apt-get install gcc-4.7

No luck I still got the same error. More Googling lead me to install Module::Install since that is what it said it was missing. (sudo probably not required)

sudo cpanm -S inc::Module::Install

Then it said it was missing JSON so I installed it using the following.

sudo cpanm install JSON

Finally I was able to install Weather Underground without errors. IO::Termios had already installed without errors.

sudo cpanm -S WWW::Wunderground::API 

After all this Infinitude started without errors.

I'm not suggesting you use Rasbian Strech but if you do I suspect this might be helpful...

John

More Device Tables

This is for a SYSTXCCITC01-A thermostat on an Infinity Greenspeed System if you want to add it to the protocol breakout:

Device Table Name
20 0x01 DEVCONFG
20 0x02 SYSTIME
20 0x03 INGUI
20 0x04 SSBCAST
20 0x06 LINESET
20 0x3b SAMINFO
20 0x40 SCHEDULE
20 0x41 TEMP
20 0x42 LASTTEN
20 0x46 MISC1
20 0x47 RESTMR
20 0x48 HEALTH
20 0x49 SYSCTRL
20 0x4a MISC2
20 0x4c SYSMETRC
20 0x4e CHARGING

Controlling Carrier Infinity not happening

New to infinitude, but very excited to have found it. Before I replaced my 20 year old HVAC system, I was running a python based thermostat program based on one of the various Raspberry Pi thermostats but heavily modified to make use of some additional Pi Zero's across the levels of the house and a list of WiFi MACs to arp for to know if it should be in "home" or "away" mode. The instant switch from home to away as I walked out the door is what I miss most (I sometimes work from home and like it if the thermostat can stay in home mode without me having to remember every morning).

Is this something that I can I do with infinitude? It seems like I should be able to, but after issuing a test "http://192.168.1.5:8080/api/1/hold?activity=sleep&until=15:15" with Safari I don't see any updates on the thermostat or the Infinitude Status page, though I do see it in the Comfort Profiles page. I wanted to see that work before I moved on to curl or perl.

Am I doing something wrong here? It looks like the thermostat is connected through the infinitude proxy connection and the Status page has updated several times while I've been writing this.

Thanks,
Mark

Flash/AIR Application

This is in response to your question on whether or not the flash/air app can be controlled/scraped.

Not sure it is worth trying to scrape or control the app...BUT a little network traffic sniffing tells me the app is using oauth to authenticate and tools exist to extract data from SWF files. So you should be able to get the consumer_key and consumer_secret from the flash file. Couple that with the login credentials and you SHOULD be able to query the server by hacking together an oauth request based on the network traffic seen by the app.

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.