Hi Walter !
Thanks for the reminder.
I promise that I will soon release a new version with your treatment.
No other changes yet I do not anticipate.
Best regards, Pako
18:51:21 Server Home_Automation: New client ('127.0.0.1', 52254) tries to connect
18:51:21 get_headers - data: "GET / HTTP/1.1\r\nOrigin: http://127.0.0.1:8282\r\nSec-WebSocket-Key1: AZ-27 + 1S7 $'6fE4 11 20\r\nSec-WebSocket-Key2: 3 29 9152^[/B6H!C5>`4\r\nConnection: Upgrade\r\nHost: 127.0.0.1:1235\r\nUpgrade: WebSocket\r\n\r\n<\x07\x8e\xabx\xc8\x93\x92"
18:51:32 Traceback (most recent call last) (1544):
18:51:32 File "wx\_core.pyc", line 14660, in <lambda>
18:51:32 File "C:\Program Files\EventGhost\plugins\WebsocketSuite\__init__.py", line 1899, in __init__
18:51:32 FillListCtrl()
18:51:32 File "C:\Program Files\EventGhost\plugins\WebsocketSuite\__init__.py", line 1889, in FillListCtrl
18:51:32 ip, port = clnts[i].getpeername()
18:51:32 File "<string>", line 1, in getpeername
18:51:32 File "socket.pyc", line 165, in _dummy
18:51:32 error: [Errno 9] Bad file descriptor
folder = self.dataSet[self.servers[ix][3]][3][3]
self.updateLogFile(folder, self.servers[ix][1], line)
if Persist.userVariables: # THIS IS THE ADDED LINE
vars = Persist.userVariables[self.servers[ix][3]][1]
for v in vars:
self.send_data(r, "%s=%s" % (v[0], v[1]))
line = self.text.msgToCln % (unicode(v[0]), unicode(v[1]), r.getpeername())
self.updateLogFile(folder, self.servers[ix][1], line)
if Persist.userVariables: # THIS IS THE ADDED LINE "HTTP/1.1 101 Web Socket Protocol Handshake",
"Upgrade: Websocket",
"HTTP/1.1 101 WebSocket Protocol Handshake",
"Upgrade: WebSocket",
"HTTP/1.1 101 Switching Protocols",
"Upgrade: WebSocket",
"HTTP/1.1 101 Switching Protocols",
"Upgrade: websocket",
client.send(our_handshake)
#client.send(our_handshake.encode('latin-1'))
#client.send(our_handshake)
client.send(our_handshake.encode('latin-1'))
DEBUG = False
if DEBUG:
log = eg.Print
else:
def log(dummyMesg):
pass
That is absolutely correct, if you are using the latest version of Chrome.kingtd wrote:4. Even with debug enabled, I never see the "get_headers" line.
Totally agree with you. I hope I can find time to improve this part of the plugin.kingtd wrote:... but the Persistent Variables component, and especially the UI for entering the initial values is very fragile.
<html lang="sv">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<title>System information</title>
<style type="text/css">
.on {
border:4px inset;
color:#369;
background:#efefef;
}
.off {
border:4px outset;
color:#369;
background:#f9d543;
}
</style>
<script type="text/javascript">
//var wsUri = "ws://192.168.10.248:1235/";
var wsUri = "ws://192.168.10.252:1235/";
var output;
function init()
{
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket()
{
//websocket = new WebSocket(wsUri);
if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
//test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
var ffversion=new Number(RegExp.$1); // capture x.x portion and store as a number
if (ffversion>=7)
websocket = new MozWebSocket(wsUri);
else if (ffversion>=6)
websocket = new WebSocket(wsUri);
else if (ffversion>=5)
websocket = new WebSocket(wsUri);
else if (ffversion>=4)
websocket = new WebSocket(wsUri);
else if (ffversion>=3)
websocket = new WebSocket(wsUri);
else if (ffversion>=2)
websocket = new WebSocket(wsUri);
else if (ffversion>=1)
websocket = new WebSocket(wsUri);
} else
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
}
function onOpen(evt)
{
//writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt)
{
writeToScreen("DISCONNECTED");
websocket.close();
}
function onError(evt)
{
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
}
function doSend(message)
{
//writeToScreen("SENT: " + message);
websocket.send(message);
}
function writeToScreen(message)
{
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);
}
function onMessage(evt)
{
//writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
//alert(evt.data);
document.getElementById("t11").style.color ="white";
document.getElementById("t11").style.fontFamily ="arial";
document.getElementById("t11").style.fontSize ="2";
document.getElementById("t11").innerHTML = '';
document.getElementById("tt1").style.color ="white";
document.getElementById("tt1").style.fontFamily ="arial";
document.getElementById("tt1").style.fontSize ="2";
document.getElementById("tt1").innerHTML = '';
document.getElementById("or13").style.color ="white";
document.getElementById("or13").style.fontFamily ="arial";
document.getElementById("or13").style.fontSize ="2";
document.getElementById("or13").innerHTML = '';
document.getElementById("or14").style.color ="white";
document.getElementById("or14").style.fontFamily ="arial";
document.getElementById("or14").style.fontSize ="2";
document.getElementById("or14").innerHTML = '';
if (evt.data.search("Weather Condition:")!=-1)
{
//alert(evt.data);
var m = evt.data.split(".");
var m1 = m[1]
var w = ''
//alert(m1);
switch (m1) {
case 'Cloudy': w = 'Klart'; break;
case 'Fog': w = 'Dimma'; break;
case 'Overcast': w = 'Gråmulet'; break;
case 'Light rain': w = 'Lätt regn'; break;
case 'Rain': w = 'Regn'; break;
case 'Rain Showers': w = 'Regnskurar'; break;
case 'Freezing Rain': w = 'Underkylt regn'; break;
case 'Freezing Drizzle': w = 'Underkylt regn'; break;
case 'Drizzle': w = 'Duggregn'; break;
case 'Flurries': w = 'Lätt snöfall'; break;
case 'Rain and Snow': w = 'Snöblandat regn'; break;
case 'Showers': w = 'Skurar'; break;
case 'Isolated Thunderstorms': w = 'Lokal storm'; break;
case 'Thunderstorm': w = 'Storm'; break;
case 'Chance of Showers': w = 'Risk för regn'; break;
case 'Chance of Snow': w = 'Risk för snö'; break;
case 'Chance of Storm': w = 'Risk för storm'; break;
case 'Scattered Showers': w = 'Spridda skurar'; break;
case 'Mist': w = 'Lätt dimma'; break;
case 'Dust': w = 'Damm'; break;
case 'Icy': w = 'Isigt'; break;
case 'Smoke': w = 'Rök'; break;
case 'Sleet': w = 'Snömodd'; break;
case 'Snow': w = 'Snö'; break;
case 'Light snow': w = 'Lätt snö'; break;
case 'Snow Showers': w = 'Snöstorm'; break;
case 'Mostly Cloudy': w = 'Mestadels molnigt'; break;
case 'Ice/Snow': w = 'Is/snö'; break;
case 'Haze': w = 'Smog'; break;
case 'Partly Cloudy': w = 'Delvis molnigt'; break;
case 'Clear': w = 'Klart'; break;
case 'Sunny': w = 'Soligt'; break;
case 'Mostly Sunny': w = 'Mestadels soligt'; break;
case 'Partly Sunny': w = 'Delvis soligt'; break;
default: w = 'Okänt';
}
document.getElementById("t14").style.color ="white";
document.getElementById("t14").style.fontFamily ="arial";
document.getElementById("t14").style.fontSize ="12";
document.getElementById("t14").innerHTML = w;
}
if (evt.data.search("Difference to dew point in Ground")!=-1)
{
var m = evt.data.split(".");
//alert(m);
//alert(m[1]);
document.getElementById("t02").style.color ="white";
document.getElementById("t02").style.fontFamily ="arial";
document.getElementById("t02").style.fontSize ="12";
document.getElementById("t02").innerHTML = m[1]+"."+m[2]+"."+m[3]+", Senaste beräkning: "+global_n[1]+" "+global_n[2];
}
if (evt.data.search("Difference to dew point in Attic")!=-1)
{
var m = evt.data.split(".");
//alert(m);
//alert(m[0]);
//alert(m[1]);
//alert(m[2]);
//alert(m[3]);
document.getElementById("t06").style.color ="white";
document.getElementById("t06").style.fontFamily ="arial";
document.getElementById("t06").style.fontSize ="12";
document.getElementById("t06").innerHTML = m[1]+"."+m[2]+"."+m[3]+", Senaste beräkning: "+global_n[1]+" "+global_n[2];
}
if (evt.data.search("Lost contact with Ground")!=-1)
{
var m = evt.data;
//alert(m);
document.getElementById("t15").style.color ="red";
document.getElementById("t15").style.fontFamily ="arial";
document.getElementById("t15").style.fontSize ="12";
document.getElementById("t15").innerHTML = 'Förlorat kontakten med sensorn i krypgrunden'+' '+global_n[1]+' '+global_n[2];
}
if (evt.data.search("Lost contact with Attic")!=-1)
{
var m = evt.data;
//alert(m);
document.getElementById("t16").style.color ="red";
document.getElementById("t16").style.fontFamily ="arial";
document.getElementById("t16").style.fontSize ="12";
document.getElementById("t16").innerHTML = 'Förlorat kontakten med sensorn på vinden'+' '+global_n[1]+' '+global_n[2];
}
if (evt.data.search("Recovered contact with Ground")!=-1)
{
var m = evt.data;
//alert(m);
document.getElementById("t15").style.color ="green";
document.getElementById("t15").style.fontFamily ="arial";
document.getElementById("t15").style.fontSize ="12";
document.getElementById("t15").innerHTML = 'Återfått kontakten med sensorn i krypgrunden'+' '+global_n[1]+' '+global_n[2];
}
if (evt.data.search("Recovered contact with Attic")!=-1)
{
var m = evt.data;
//alert(m);
document.getElementById("t16").style.color ="green";
document.getElementById("t16").style.fontFamily ="arial";
document.getElementById("t16").style.fontSize ="12";
document.getElementById("t16").innerHTML = 'Återfått kontakten med sensorn på vinden'+' '+global_n[1]+' '+global_n[2];
}
if (evt.data.search("TempCapture0x15")!=-1) //BV
{
var m = evt.data;
var n = m.split(",");
//alert(m);
document.getElementById("ot00").style.color ="white";
document.getElementById("ot00").style.fontFamily ="arial";
document.getElementById("ot00").style.fontSize ="12";
document.getElementById("ot00").innerHTML = n[1]+","+n[2]+","+n[3]+", Senaste kontakt: "+global_n[1]+" "+global_n[2];
}
if (evt.data.search("TempCapture0x3a")!=-1) //1V
{
var m = evt.data;
var n = m.split(",");
//alert(m);
document.getElementById("ot01").style.color ="white";
document.getElementById("ot01").style.fontFamily ="arial";
document.getElementById("ot01").style.fontSize ="12";
document.getElementById("ot01").innerHTML = n[1]+","+n[2]+","+n[3]+", Senaste kontakt: "+global_n[1]+" "+global_n[2];
}
if (evt.data.search("TempCapture0x7")!=-1) //Vind
{
var m = evt.data;
var n = m.split(",");
//alert(m);
document.getElementById("ot03").style.color ="white";
document.getElementById("ot03").style.fontFamily ="arial";
document.getElementById("ot03").style.fontSize ="12";
document.getElementById("ot03").innerHTML = n[1]+","+n[2]+","+n[3]+", Senaste kontakt: "+global_n[1]+' '+global_n[2];
}
if (evt.data.search("TempCapture0x20")!=-1) //Krypgrund
{
var m = evt.data;
var n = m.split(",");
//alert(m);
document.getElementById("ot02").style.color ="white";
document.getElementById("ot02").style.fontFamily ="arial";
document.getElementById("ot02").style.fontSize ="12";
document.getElementById("ot02").innerHTML = n[1]+","+n[2]+","+n[3]+", Senaste kontakt: "+global_n[1]+' '+global_n[2];
}
if (evt.data.search("currDate_Time")!=-1)
{
var m = evt.data.split(".");
//alert(m[1]);
global_n = m[1].split(" ");
var n = m[1].split(" ");
//alert(n[1]);
var today = null;
var o = parseInt(n[0]);
switch (o) {
case 0: today = 'Söndag'; break;
case 1: today = 'Måndag'; break;
case 2: today = 'Tisdag'; break;
case 3: today = 'Onsdag'; break;
case 4: today = 'Torsdag'; break;
case 5: today = 'Fredag'; break;
case 6: today = 'Lördag'; break;
default: today = 'unknown';
}
document.getElementById("t00").style.color ="yellow";
document.getElementById("t00").style.fontFamily ="arial";
document.getElementById("t00").style.fontSize ="14";
document.getElementById("t00").innerHTML = today+" "+n[1];
document.getElementById("tt0").style.color ="yellow";
document.getElementById("tt0").style.fontFamily ="arial";
document.getElementById("tt0").style.fontSize ="14";
document.getElementById("tt0").innerHTML = n[2];
}
if (evt.data.search("SCALEO")!=-1)
{
var m = evt.data.split("|");
//alert(m);
var batt = 'unknown';
if (m[7] == 0) {
batt = 'OK';
} else {
batt = 'Low';
}
if (m[2]=="8" && m[4]=="1")
{
if (m[7] == 0) {
document.getElementById("t04").style.color ="white";
} else {
document.getElementById("t04").style.color ="orange";
}
document.getElementById("t04").style.fontFamily ="arial";
document.getElementById("t04").style.fontSize ="12";
document.getElementById("t04").innerHTML = m[5]+"C, "+m[6]+"RH%, "+"Batteri "+batt+', '+"Senaste kontakt: "+global_n[1]+' '+global_n[2];
}
if (m[2]=="1" && m[4]=="1")
{
if (m[7] == 0) {
document.getElementById("t12").style.color ="white";
} else {
document.getElementById("t12").style.color ="orange";
}
document.getElementById("t12").style.fontFamily ="arial";
document.getElementById("t12").style.fontSize ="12";
document.getElementById("t12").innerHTML = m[5]+"C, "+m[6]+"RH%, "+"Batteri "+batt+', '+"Senaste kontakt: "+global_n[1]+' '+global_n[2];
}
if (m[2]=="1" && m[4]=="2")
{
if (m[7] == 0) {
document.getElementById("t18").style.color ="white";
} else {
document.getElementById("t18").style.color ="orange";
}
document.getElementById("t18").style.fontFamily ="arial";
document.getElementById("t18").style.fontSize ="12";
document.getElementById("t18").innerHTML = m[5]+"C, "+m[6]+"RH%, "+"Batteri "+batt+', '+"Senaste kontakt: "+global_n[1]+' '+global_n[2];
}
if (m[2]=="15" && m[4]=="1")
{
if (m[7] == 0) {
document.getElementById("t20").style.color ="white";
} else {
document.getElementById("t20").style.color ="orange";
}
document.getElementById("t20").style.fontFamily ="arial";
document.getElementById("t20").style.fontSize ="12";
document.getElementById("t20").innerHTML = m[5]+"C, "+m[6]+"RH%, "+"Batteri "+batt+', '+"Senaste kontakt: "+global_n[1]+' '+global_n[2];
}
if (m[2]=="15" && m[4]=="2")
{
if (m[7] == 0) {
document.getElementById("t22").style.color ="white";
} else {
document.getElementById("t22").style.color ="orange";
}
document.getElementById("t22").style.fontFamily ="arial";
document.getElementById("t22").style.fontSize ="12";
document.getElementById("t22").innerHTML = m[5]+"C, "+m[6]+"RH%, "+"Batteri "+batt+', '+"Senaste kontakt: "+global_n[1]+' '+global_n[2];
}
}
}
window.addEventListener("load", init, false);
</script>
<!-- <h2>WebSocket Test</h2> -->
<div id="output"></div>
<body bgcolor="#3A3C69" text=white link=white vlink=white alink=white />
<center>
<table border="1" width="70%">
<tr><!-- Row 0 -->
<td><text id="t00"><font face="arial" color="white" font size="4"> Dag och datum</text></td>
<td><text id="tt0"><font face="arial" color="white" font size="4"> Tid</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t11"><font face="arial" color="white" font size="2"> </text></td>
<td><text id="tt1"><font face="arial" color="white" font size="2"> </text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t13"><font face="arial" color="white" font size="2"> Vädret</text></td>
<td><text id="t14"><font face="arial" color="white" font size="2"> Odefinierat</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t17"><font face="arial" color="white" font size="2"> Klimat under trappan</text></td>
<td><text id="t18"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t03"><font face="arial" color="white" font size="2"> Klimat ute, trädgården</text></td>
<td><text id="t04"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t11"><font face="arial" color="white" font size="2"> Klimat ute, garaget</text></td>
<td><text id="t12"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t19"><font face="arial" color="white" font size="2"> Frysbox, vänster</text></td>
<td><text id="t20"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t21"><font face="arial" color="white" font size="2"> Frysbox, höger</text></td>
<td><text id="t22"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="or00"><font face="arial" color="white" font size="2"> Klimat BV</text></td>
<td><text id="ot00"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="or01"><font face="arial" color="white" font size="2"> Klimat 1V</text></td>
<td><text id="ot01"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="or02"><font face="arial" color="white" font size="2"> Klimat vinden</text></td>
<td><text id="ot02"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="or03"><font face="arial" color="white" font size="2"> Klimat krypgrunden</text></td>
<td><text id="ot03"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="or13"><font face="arial" color="white" font size="2"> </text></td>
<td><text id="or14"><font face="arial" color="white" font size="2"> </text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t01"><font face="arial" color="white" font size="2"> Delta Daggpunkt krypgrunden</text></td>
<td><text id="t02"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="t05"><font face="arial" color="white" font size="2"> Delta Daggpunkt vinden</text></td>
<td><text id="t06"><font face="arial" color="white" font size="2"> Väntar på data...</text></td>
</tr>
<tr><!-- Row 9 -->
<td><text id="or15"><font face="arial" color="white" font size="2"> </text></td>
<td><text id="or16"><font face="arial" color="white" font size="2"> </text></td>
</tr>
</table>
Users browsing this forum: Samme and 1 guest