Page 17 of 28

Re: TellStick Duo

Posted: Thu Feb 05, 2015 5:18 pm
by Mastiff
I only see the Nexas so far. Both the buttons themselves and the Nexa signals that the RFXtrx is sending out.

Re: TellStick Duo

Posted: Thu Feb 05, 2015 5:57 pm
by krambriw
Try to run the simple script in parallel to the plugin so that we get the events from everything, then paste here the ones that are not detected by the plugin and I will add support for those

Re: TellStick Duo

Posted: Thu Feb 05, 2015 6:03 pm
by Mastiff

Code: Select all

19:02:12   OpenNetHomeServer.['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1070', 'FineOffset.Temp', '246', 'Value', ''] "['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1070', 'FineOffset.Temp', '246', 'Value', '']"
19:02:13   OpenNetHomeServer.['event', 'Oregon_Message', 'Direction', 'In', 'Oregon.Channel', '4', 'Oregon.Id', '23', 'Oregon.LowBattery', '0', 'Oregon.Moisture', '32', 'Oregon.SensorId', '7456', 'Oregon.Temp', '199', 'Value', ''] "['event', 'Oregon_Message', 'Direction', 'In', 'Oregon.Channel', '4', 'Oregon.Id', '23', 'Oregon.LowBattery', '0', 'Oregon.Moisture', '32', 'Oregon.SensorId', '7456', 'Oregon.Temp', '199', 'Value', '']"
19:02:17   OpenNetHomeServer.['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1089', 'FineOffset.Temp', '-2', 'Value', ''] "['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1089', 'FineOffset.Temp', '-2', 'Value', '']"
19:02:19   OpenNetHomeServer.['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1170', 'FineOffset.Temp', '-6', 'Value', ''] "['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1170', 'FineOffset.Temp', '-6', 'Value', '']"
19:02:24   OpenNetHomeServer.['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1159', 'FineOffset.Temp', '84', 'Value', ''] "['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1159', 'FineOffset.Temp', '84', 'Value', '']"
19:02:30   OpenNetHomeServer.['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1195', 'FineOffset.Temp', '-186', 'Value', ''] "['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1195', 'FineOffset.Temp', '-186', 'Value', '']"
19:02:39   OpenNetHomeServer.['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1037', 'FineOffset.Temp', '200', 'Value', ''] "['event', 'FineOffset_Message', 'Direction', 'In', 'FineOffset.Identity', '1037', 'FineOffset.Temp', '200', 'Value', '']"
19:02:44   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '3687735', 'NexaL.Button', '6', 'NexaL.Command', '0', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '3687735', 'NexaL.Button', '6', 'NexaL.Command', '0', 'Value', '']"
19:02:45   Main.NetHome|In|NexaL.Address|3687735|NexaL.Button|6|NexaL.Command|0|Value||
19:02:45   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', '']"
19:02:45   Main.NetHome|In|NexaL.Address|7375470|NexaL.Button|12|NexaL.Command|0|Value||
19:02:45   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '3687735', 'NexaL.Button', '6', 'NexaL.Command', '0', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '3687735', 'NexaL.Button', '6', 'NexaL.Command', '0', 'Value', '']"
19:02:45   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', '']"
19:02:46   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '8849574', 'NexaL.Button', '25', 'NexaL.Command', '1', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '8849574', 'NexaL.Button', '25', 'NexaL.Command', '1', 'Value', '']"
19:02:46   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', '']"
19:02:46   Main.NetHome|In|NexaL.Address|3687735|NexaL.Button|6|NexaL.Command|0|Value||
19:02:46   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '3687735', 'NexaL.Button', '6', 'NexaL.Command', '0', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '3687735', 'NexaL.Button', '6', 'NexaL.Command', '0', 'Value', '']"
19:02:46   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '7375470', 'NexaL.Button', '12', 'NexaL.Command', '0', 'Value', '']"
19:02:46   Main.NetHome|In|NexaL.Address|7375470|NexaL.Button|12|NexaL.Command|0|Value||
19:02:47   OpenNetHomeServer.['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '20388742', 'NexaL.Button', '25', 'NexaL.Command', '1', 'Value', ''] "['event', 'NexaL_Message', 'Direction', 'In', 'NexaL.Address', '20388742', 'NexaL.Button', '25', 'NexaL.Command', '1', 'Value', '']"
19:02:47   Main.NetHome|In|NexaL.Address|8849574|NexaL.Button|25|NexaL.Command|1|Value||
19:02:48   Main.NetHome|In|NexaL.Address|3687735|NexaL.Button|6|NexaL.Command|0|Value||
19:02:49   Main.NetHome|In|NexaL.Address|20388742|NexaL.Button|25|NexaL.Command|1|Value||
19:02:56   OpenNetHomeServer.['event', 'Oregon_Message', 'Direction', 'In', 'Oregon.Channel', '4', 'Oregon.Id', '23', 'Oregon.LowBattery', '0', 'Oregon.Moisture', '32', 'Oregon.SensorId', '7456', 'Oregon.Temp', '199', 'Value', ''] "['event', 'Oregon_Message', 'Direction', 'In', 'Oregon.Channel', '4', 'Oregon.Id', '23', 'Oregon.LowBattery', '0', 'Oregon.Moisture', '32', 'Oregon.SensorId', '7456', 'Oregon.Temp', '199', 'Value', '']"
As you can see Oregon and FineOffset aren't decoded, while the buttons are.

Re: TellStick Duo

Posted: Thu Feb 05, 2015 6:08 pm
by krambriw
Perfect, I will add those. Expect a new plugin tomorrow morning, I think I skip it for tonight (I will watch 'Antikrundan' instead...)

Re: TellStick Duo

Posted: Thu Feb 05, 2015 6:15 pm
by Mastiff
Great, thanks! As for Antikrundan, to each his own... ;) I prefer Star Trek and Stargate myself! :mrgreen:

Re: TellStick Duo

Posted: Fri Feb 06, 2015 12:36 pm
by krambriw
@Mastiff
It took a bit longer but here is a first preliminary version. Oregon temp/hum sensor events are working fine here, FineOffset temp sensors should work but I could not test. Oregon wind and rain is not supported and I am unsure if those are supported by NetHome (if you do not see such events with the script, your Oregon wind & rain sensor is not supported)
__init__.py
(52.88 KiB) Downloaded 119 times

Re: TellStick Duo

Posted: Fri Feb 06, 2015 12:58 pm
by Mastiff
Looks great, thanks! The wind and rain doesn't work. I read on the blog for NetHomeServer that he has implemented it, but "theoretically", since he doesn't have one of those himself. But it shouldn't be a problem for me, the RFXtrx can reach both the wind and the rain sensors. Here's a bit of log output, with both oregon and Fine Offset (must say that it took a few seconds to wrap my head around the print command that doesn't print the period - so 24.3 degrees is 243 :mrgreen: ):
13:53:07 NetHome.Oregon|23|4| 'Temp|20.3|Hum|35|Batt|0|'
13:53:25 NetHome.Oregon|245|2| 'Temp|23.1|Hum|38|Batt|0|'
13:53:26 ['In', 'FineOffset.Identity', '1070', 'FineOffset.Temp', '243', 'Value', '', '']
13:53:26 NetHome.FineOffset|1070 'Temp|24.3'
13:53:32 ['In', 'FineOffset.Identity', '1089', 'FineOffset.Temp', '56', 'Value', '', '']
13:53:32 NetHome.FineOffset|1089 'Temp|5.6'
13:53:34 System.Idle
13:53:35 ['In', 'FineOffset.Identity', '1170', 'FineOffset.Temp', '22', 'Value', '', '']
13:53:35 NetHome.FineOffset|1170 'Temp|2.2'
13:53:36 ['In', 'FineOffset.Identity', '1159', 'FineOffset.Temp', '83', 'Value', '', '']
13:53:36 NetHome.FineOffset|1159 'Temp|8.3'
13:53:48 ['In', 'FineOffset.Identity', '1195', 'FineOffset.Temp', '-188', 'Value', '', '']
13:53:48 NetHome.FineOffset|1195 'Temp|-18.8'
13:53:50 NetHome.Oregon|23|4| 'Temp|20.3|Hum|35|Batt|0|'
13:53:53 System.ClipboardChanged
13:53:53 System.UnIdle
13:53:54 ['In', 'FineOffset.Identity', '1037', 'FineOffset.Temp', '207', 'Value', '', '']
13:53:54 NetHome.FineOffset|1037 'Temp|20.7'
13:54:14 ['In', 'FineOffset.Identity', '1070', 'FineOffset.Temp', '242', 'Value', '', '']
13:54:14 NetHome.FineOffset|1070 'Temp|24.2'
13:54:20 ['In', 'FineOffset.Identity', '1089', 'FineOffset.Temp', '56', 'Value', '', '']
13:54:20 NetHome.FineOffset|1089 'Temp|5.6'
Btw where do I turn off that print command? It's more than enough to have the event. :D

Re: TellStick Duo

Posted: Fri Feb 06, 2015 3:08 pm
by krambriw
You find it in line 353, you just delete the line

Code: Select all

        print fineOffsetMsg
Regarding temperature, I was incorrect yesterday, the temperature from Oregon and FineOffset is provided as an integer that has to be divided by 10 into a floating point value. What I wrote yesterday is valid for UPM/ESIC

Have a nice weekend

Re: TellStick Duo

Posted: Fri Feb 06, 2015 3:18 pm
by Mastiff
Yep, that was it. Thanks! :mrgreen: And I will have an almost nice weekend - I'm going to put up my in the cabin new Swedish made Euroscreen Sesame projector screen, which arrived yesterday. Why almost nice? Because the projector itself doesn't arrive from calibration until the end of next week or the week after that... :lol: Have a great weekend yourself!

Re: TellStick Duo

Posted: Fri Feb 06, 2015 4:04 pm
by Mastiff
Not so fast, young man! :shock: Check this out:

Code: Select all

16:42:17   Tellstick.Oregon|23|4| 'Temp|20.0|Hum|36|Batt|0|'

Code: Select all

16:42:17   Exception in thread Tellstick:
16:42:17   Traceback (most recent call last):
16:42:17     File "threading.pyc", line 532, in __bootstrap_inner
16:42:17     File "C:\Program Files (x86)\EventGhost\plugins\NetHomeServer\__init__.py", line 318, in run
16:42:17       self.OregonMessage(oregonMsg)
16:42:17     File "C:\Program Files (x86)\EventGhost\plugins\NetHomeServer\__init__.py", line 375, in OregonMessage
16:42:17       oregonTemperature = float(oregonMsg[12])
16:42:17   IndexError: list index out of range
16:42:17   
And the plugin stops working. :cry:

Re: TellStick Duo

Posted: Fri Feb 06, 2015 6:50 pm
by krambriw
So young man :D

I was expecting this but I could not be 100% sure,,,I have seen that messages from NetHome sometimes are incomplete and that is what has happened here. To safe guard the operation of the plugin, please try the attached version instead. It is fully compatible with the previous so just replace and restart EG should do it
__init__.py
(53.2 KiB) Downloaded 107 times

Re: TellStick Duo

Posted: Fri Feb 06, 2015 7:09 pm
by Mastiff
OK, rockin' and rollin' again. ;) I'll let you know if there are more problems. :D Oh, and maybe we should have a male dominance match? I'm 50 next year. Does that give me the right to call you "young man"? :P

Re: TellStick Duo

Posted: Sat Feb 07, 2015 10:23 am
by srki76
Hi,

I have the latest TSDUO plugin, nice thing is that the humidity and temperature are separated in log, but when I copy event from log to a macro, macro wouldnt start. Here is the picture of my problem, as You can see, humidity is 56, and last macro isnt executing.
Another strange thing is when I try to drag&drop humidity log event from the left to the macro on the right side, it will drop event without '56' at he end.

Re: TellStick Duo

Posted: Sat Feb 07, 2015 7:48 pm
by krambriw
Another strange thing
It is not so strange, it has a natural explanation. All values from sensors like temperature and humidity is not part of the event.suffix, it is always provided in the event.payload. Otherwise you would have to add events in your macros for all possible values and that would be a mess.

So to make your macros work you need to evaluate the payload of the event before you continue the macro. This can be done with a simple python script that you put in the macro just after the event. If the value provided in the payload is fitting your criteria, the macro will continue, otherwise it will stop.

This is a script you could try for your first macro that starts the fans:

Code: Select all

def eventHandler(pload):
    hum_level = int(pload)
    if hum_level == 63:
        eg.StopMacro()
        eg.plugins.EventGhost.ShowOSD(u'Stopped macro', u'0;-24;0;0;0;700;0;0;0;1;0;0;2;32;Arial', (255, 255, 255), (0, 0, 0), 0, (0, 0), 0, 3.0, False)
    else: 
        pass

eventHandler(eg.event.payload)
And this for your second macro where fans are stopped:

Code: Select all

def eventHandler(pload):
    hum_level = int(pload)
    if hum_level == 58:
        eg.StopMacro()
        eg.plugins.EventGhost.ShowOSD(u'Stopped macro', u'0;-24;0;0;0;700;0;0;0;1;0;0;2;32;Arial', (255, 255, 255), (0, 0, 0), 0, (0, 0), 0, 3.0, False)
    else: 
        pass

eventHandler(eg.event.payload)
Please be aware of certain things

1) The fans will be started or stopped only when the humidity is reaching the exact thresholds 58 and 63 respectivly. If you start EG at anytime, you will then have to wait until this happens
2) You should therefore consider to set hum_level > 58 and hum_level < 63 in the scripts above
3) Eventually consider to build in a status memory in the scripts to avoid that the commands are repeated every minute when the event arrives (this is a second step we can discuss when you have the first part)

BestR

Re: TellStick Duo

Posted: Sat Feb 07, 2015 7:53 pm
by Mastiff
krambriw wrote:[quote3) Eventually consider to build in a status memory in the scripts to avoid that the commands are repeated every minute when the event arrives (this is a second step we can discuss when you have the first part)
You mean to avoid having noise that can drown out other commands, or is there another reason? I have my heating scripts (which mostly runs on the RFXtrx) set to send on every time, so I get commands every minute or two for just about everything.