Hätte ich auch gerne, aber meine Perhofer Anlage hat kein Interface.
Gesendet von meinem iPhone mit Tapatalk
Hätte ich auch gerne, aber meine Perhofer Anlage hat kein Interface.
Gesendet von meinem iPhone mit Tapatalk
Hallo,
Du hast nur eine CCU2 und sonst noch keine Hardware Alternative?
Ich habe meine MAX! Thermostaten nämlich mit homegear am Raspi laufen.
Da braucht man nix einstellen, sondern erhält alle Geräte wie von einer "CCU".
LG Christian
Ein Freund von mir hat einen Raspberry mit KNX Board, werde mir das mal ausborgen und den Adapter testen.
Gesendet von meinem iPhone mit Tapatalk
Hey keinen Stress mir geht es bei meinen Adaptern nicht viel anders.
Gesendet von meinem iPhone mit Tapatalk
Hallo, ich glaube da gibt es noch nicht viel.
Ich bräuchte den auch, bin aber noch nicht dazugekommen mir es näher anzusehen.
Gesendet von meinem iPhone mit Tapatalk
Ist nur ein Logeintrag, weil alles State Changes überwacht werden.
Klarer Fall von, das muss noch raus.
Gesendet von meinem iPhone mit Tapatalk
Hallo, ist in GitHub jetzt drinnen.
Es wurde die preinstall.js dementsprechend angepasst.
Wenn die beiden Dateien
/usr/local/lib/libopenzwave.so und
/usr/local/etc/openzwave/manufacturer_specific.xml
existieren, wird keine erneute openzwave Installation durchgeführt.
Hallo, ja ist im Plan für die nächste Version.
Im Moment waren einfach immer Fehler drinnen, welche tlw. durch eine neue openzwave Version
behoben wurden.
Hallo,
du musst zuerst den Wert holen und kannst ihn dann prüfen:
FALSCH:
if(obj.newState.val && getState(TAG2 === false).val)
RICHTIG:
if(obj.newState.val && getState(TAG2).val === false)
Mit getState(XXX).val bekommst du den Inhalt der Variable
und danach auf Inhalt prüfen.
LG Christian
Guten Morgen!
Meine Mädels sind alle schon unterwegs, darum gibt es um die Uhrzeit schon ein Update:
In GitHub ist nun die Version 0.3.0 integriert.
Damit ist es nun möglich, direkt über Javascript / VIS / etc. eine Aktion an den zWave Adapter zu übermitteln.
Beispiel Javascript:
// Only for Documentation, all valid actions
var actions = ['reset', 'assign_return_route', 'delete_all_return_routes', 'create_primary', 'replace_failed_node', 'transfer_primary',
'replication_send', 'add_button', 'remove_button', 'add_device', 'remove_device', 'receive_config', 'refresh_node', 'remove_failed_node',
'has_node_failed', 'request_node_neighbor_update', 'assign_return_route', 'delete_all_return_routes', 'send_node_information',
'request_network_update', 'refresh_device', 'healNetwork', 'updatenode', 'association', 'naming'];
// Nodeid is always needed, get it from e.g. input from vis
var nodeid = 10;
// Action is always needed, get it from e.g. listbox from vis
var action = 'naming';
// ButtonID is only needed for action = adddButton, removeButton
var buttonid = 1;
// Name and Location are needed only needed for action = naming
var deviceName = 'New Name of Device';
var deviceLocation = 'New Location of Device';
// Heal and Count are needed only needed for action = healNetwork
var heal = true;
var count = 5;
// Group and Nodes are needed only needed for action = association
var group = 'GROUP NAME FROM ASSOCIATIONS';
var nodes = [1,2,3];
buildAction(action, nodeid, undefined, undefined, deviceName, deviceLocation, undefined, undefined);
// Build correct Action
function buildAction(executeAction, nodeid, heal, count, device_name, device_location, groupid, nodes) {
switch (executeAction) {
case 'association':
submitAction(executeAction, nodeid, undefined, undefined, undefined, undefined, undefined, groupid, nodes);
break;
case 'updatenode':
submitAction(executeAction, nodeid);
break;
case 'heal':
submitAction(executeAction, nodeid, undefined, undefined, undefined, heal, count);
break;
case 'add_device':
submitAction(executeAction);
break;
case 'remove_device':
submitAction(executeAction);
break;
case 'receive_config':
submitAction(executeAction);
break;
case 'refresh_node':
submitAction(executeAction, nodeid);
break;
case 'remove_failed_node':
submitAction(executeAction, nodeid);
break;
case 'has_node_failed':
submitAction(executeAction, nodeid);
break;
case 'request_node_neighbor_update':
submitAction(executeAction, nodeid);
break;
case 'send_node_information':
submitAction(executeAction, nodeid);
break;
case 'request_network_update':
submitAction(executeAction, nodeid);
break;
case 'refresh_device':
submitAction(executeAction, nodeid);
break;
case 'naming':
submitAction(executeAction, nodeid, undefined, device_name, device_location);
break;
case 'reset':
submitAction(executeAction);
break;
case 'assign_return_route':
submitAction(executeAction, nodeid);
break;
case 'delete_all_return_routes':
submitAction(executeAction, nodeid);
break;
case 'create_primary':
submitAction(executeAction);
break;
case 'replace_failed_node':
submitAction(executeAction, nodeid);
break;
case 'transfer_primary':
submitAction(executeAction);
break;
case 'replication_send':
submitAction(executeAction, nodeid);
break;
case 'add_button':
submitAction(executeAction, nodeid, buttonid);
break;
case 'remove_button':
submitAction(executeAction, nodeid, buttonid);
break;
default:
break;
}
}
// Submit Action back to zWave Adapter
function submitAction(action, nodeid, buttonid, name, location, heal, count, group, nodes) {
if (nodeid !== undefined) {
if (buttonid !== undefined) {
setState('zwave.0.NODE' + nodeid + ".GLOBAL_ACTION", {
val: {nodeid: nodeid, action: action, buttonid: buttonid},
ack: true});
} else if (name !== undefined && location !== undefined) {
setState('zwave.0.NODE' + nodeid + ".GLOBAL_ACTION", {
val: {nodeid: nodeid, action: action, name: name, location: location},
ack: true
});
} else if (heal !== undefined) {
setState('zwave.0.GLOBAL_ACTION', {
val: {nodeid: nodeid, action: action, heal: heal, count: count},
ack: true
});
} else if (group !== undefined) {
setState('zwave.0.NODE' + nodeid + ".GLOBAL_ACTION", {
val: {nodeid: nodeid, action: action, group: group, target_nodeid: nodes},
ack: true
});
} else {
setState('zwave.0.NODE' + nodeid + ".GLOBAL_ACTION", {
val: {nodeid: nodeid, action: action},
ack: true
});
}
} else {
setState('zwave.0.GLOBAL_ACTION', {
val: {action:action},
ack: true
});
}
}
In diesem Beispiel wird der Name und die Location des Node 10 verändert.
Wenn man den Befehl "buildAction(…)" dementsprechend anders parametrisiert, dann natürlich auch andere Actions.
Man kann aber auch direkt in die Variable zwave.0.NODE<id>.GLOBAL_ACTION z.B.
{"val":{"nodeid":10,"action":"naming","name":"New Name of Device","location":"New Location of Device"}}
reinschreiben.
Ich bin grade am überlegen, ob ich mir damit nicht selbst ein vis Widget baue...
LG Christian</id>
Ich schreib dir das morgen zusammen, heute bin ich schon weg vom Rechner.
LG Christian