Hi Leute,
nachdem mir doch schon einige male hier auf geholfen wurde und ich schon vieles aus dem Forum und dem Wiki aufgeschnappt habe, möchte ich der Community auch mal was zurückgeben :)
Anbei zwei Module für das Plugwise-System.
45_Plugwise.pm als Hauptmodul für den Stick
46_Circles.pm als Device, welches unter dem Plugwise hängt.
Wenn ein erfahrenerer Perl-Programmierer drüberschaut, werden ihm wahrscheinlich die Haare zu Berge stehn gg
Das ganze ist zusammengestöpselt aus dem WMR-Modul (Grundstruktur abgeguggt) und dem Perl-Plugwise-Device.
Ursprünglich wollte ich sowieso das Device::Plugwise verwenden, allerdings hat das den Nachteil, dass ich mich nicht in die DevIO einhängen kann.
Voraussetzungen:
Die Perl-Module digest:CRC und math::round müssen installiert sein.
Definition des Moduls:
define myPlugwise Plugwise /dev/ttyPlugwise@115200
also einfach nur die serielle Schnittstelle angeben
Die Circles werden bei in der Init-Routine automatisch gesucht und angelegt, können aber auch nachträglich per
get myPlugwise Scan_Circles
nochmal gesucht werden, falls später ein neuer Circle hinzugekommen ist.
Mit dem Attribut circlecount kann man die Anzahl der zu Suchenden Circles einstellen (bei mir 10).
Über Intervall kann das polling-Intervall eingestellt werden.
Bei mir funktioniert das ganze jetzt schon seit einigen Tagen ohne Probleme.
Update:
"syncTime" -> damit wird die Uhrzeit auf den Circles auf die aktuelle Systemzeit gesetzt. Kann einzeln (set CircleAdr syncTime) oder global (set MyPlugwise syncTime) gesetzt werden.
Verbose 4 loggt den Datenstream mit.
Sorry for the English. My German reading is good, but writing could be better. Thanks for creating this module. Going to test it on a Raspberry Pi. Any special considerations regarding the Plugwise stick on a Raspi that you know of ?
Good morning,
no problem in writing english :)
I can't think of any obstacles on running Plugwise on a Raspberry.
Here, it runs since 2 weeks on a Cubietruck like a charm.
If you need any help or have suggenstions, don't hesitate to write me.
Cheers, Icinger
PS: It makes live much more easier, if you create an .udev-rule for the Plugwise-Stick, so that its alsways on then same mountpoint. (for me: /dev/ttyPlugwise instead of /dev/ttyUSBS0)
I can post my udev-rule for then plugwise tonight, since im now at the office and can't ssh home.
Must be something stupid but FHEM keeps telling me that it can not load the module Plugwise.
Checked rights, no getty on port etc.
If I use same port for FHZ1000 everything runs.....
I just moved my modules from DevSystem to MainSystem some days ago.
Copied them to my system, defined it and it worked out of the box......
To inform the general public:
I have the Plugwise modules running with 9 Circles on a Raspberry PI running FHEM. The FHEM implementation also covers a quit big network (40+) of FS20 components.
There are still some small instabilities but it looks very promising.
Hans
Hallo zusammen,
wäre es möglich das Modul um die Plugwise Switche und BWMs zu erweitern?
Vielen Dank im Voraus
Möglich ist es sicher.....
Da ich aber weder einen Switch noch einen BWM habe, kann ich das maximal nur theoretisch einspielen.
Werde mal am Wochenende schaun, ob ich protokolltechnisch dazu Informationen finde.
lg, Ici
PS: Switches sollten ja mMn eigentlich funktionieren, die sind ja auch nichts anderes als ein Circle, nur halt in nem anderen Gehäuse, oder?
Servus,
danke für die rasche Antwort. Die Switche sind die Wandschalter, die die du meinst, sind die Stealth Geräte.
Wenn ich iwas testen kann, bzw. du weitere Infos brauchst schreib kurz ne PM
Hab dir ne PM mit ein paar Infos geschrieben
Mal schaun, wie ich dazukomm......Es gibt ja auch nen fertigen Python-Stack, allerdings hab ich noch nicht geschaut, ob die Switches und BWMs da unterstützt werden.
Kurze Frage, bei den Readings,
energy ist denke ich mal der Verbrauch in wh
energy_ts scheint mir der letzte Zeitpunkt der Übermittlung des Verbrauchs zu sein
aber was ist der Unterschied zwischen power und power8?
Power ist die Anzahl der Pulse pro Sekunde.
Power8 ist die Anzahl der Pulse der letzten 8 Sekunden.
Frag mich nicht, wie dievon Plugwise genau auf diesen 8 Sekunden-Rythmus kommen....Ist halt einfach so :)
Diese Info kommt halt von den Circles im Protokoll mit.
Die Pulse werden dann unter zuhilfenahme Calibration-Info, die auch übers Protokoll kommt, umgerechnet.
lg, Ici
Hey,
ich finde deine Arbeit toll, was du da gemacht hast, endlich habe ich alles in einem Backend, vorher hab ich immer nur dieses Lästige Python script benutzt...
Ich habe ein Circle und ein Steahl+
Das Ganze sieht so aus, siehe Screenshot :)
Viele Grüße
Hi,
schön, das zu hören.
Wart noch 2-3 Tage, dann bekommst eine komplette Plugwise-Unterstützung mit Switch, Scan, Sense und Circle.
Bin grad mit einem anderen User hier im Beta-Endstadium.
lg, Ici
hey, wie schauts denn aus?
es lief jetzt knapp eine woche durch, danach kamen dauernd disconnects vom stick.
hat einer ne idee?
hier auszug aus dem log.
015.11.09 19:20:38 3: myPlugwise - Received error response - :00E1
2015.11.09 19:20:38 3: myPlugwise - Received error response - :00E1
2015.11.09 19:20:39 3: PLUGWISE: Received a valid response to the init request from the Stick. Connected!
2015.11.09 19:20:43 3: myPlugwise - Received error response - :00E1
2015.11.09 19:20:43 3: myPlugwise - Too many Errors, giving up. Use 'get myPlugwise reOpen' after correcting
greets tony
Servus,
keine Ahnung, wieso das kommt.
Aber ich häng mal oben im ersten Post eine komplett neue Version rein, die jetzt auch Switches, Scans usw unterstützt.
Die läuft jetzt schon bei mehreren Usern seit einiger Zeit tadellos.
Muss mich nur mehr über die Doku stürzen, dann werd ich schaun, dass ich die Version offiziel mach.
Hey, dank dem update scheint es keine Verbindungsabbrüche mehr zu geben :)
Es kommen auch Messages rein. Was leider fehlt sind die Power Werte, die zeigt FHEM nicht mehr an.
Grüße
Ahh, ja, ich hab ja bei der Abfrage was umgestellt.
Wenn möglich, lösch bitte die Circles und mach nen restart, dann sollten sie wieder funktionieren.
Alternativ sollte es auch reichen, wenn du bei jedem Circle das "interval"-Attribut setzt (auf die Sekundenanzahl, in der abgefragt werden soll) und dann ein restart machst.
Das ist vom Plugwise-Modul direkt in die Circles gewandert und ist natürlich bei bestehenden Circles dann nicht per Autocreate angelegt worden.
lg, Stefan
geht leider beides nicht :(
Bei dem Plugwise stick in FHEM steht auch nur opened und nicht wie vorher connected..
Gibts irgendwo logfiles wo ich mal gucken kann?
FHEM-Log.......Evtl. verbose hochsetzen.....
Wobei.....Den Status "opened" gibts gar nicht im Plugwise-Modul......Poste mal ein LIST von deinem Stick.
lg, Stefan
Hy Stefan,
was meinst du mit List??
Anbei ein paar Screenshots
Grüße Tony
so jetzt wusste ich was du mit List meinst xD
hier der output
Internals:
DEF /dev/ttyUSB0@115200
DeviceName /dev/ttyUSB0@115200
ERRCNT 0
FD 7
MSGCNT 11
NAME myPlugwis
NET_KEY 3E0D6F0002779A3A
NR 2
PARTIAL
STATE opened
STICK_MAC 000D6F000278C61F
TIME 2016-01-25 01:39:27
TYPE Plugwise
Rawmsg:
code 00240117000D6F0002793EC80F0C8D000005CCE801856539070140264E0844C202
dest Circle
device 000D6F0002793EC8
schema plugwise.basic
short 2793EC8
showCom << 0024 0117 000D6F0002793EC8 0F0C8D00 0005CCE8 01 85 653907014026 4E0844C2 02
text on
type output
val1 12701
val2 2015-12-26 01:36
val3 0
Readings:
2016-01-25 01:44:20 Buffer 23461
2016-01-25 01:39:27 LastMsg Error on Ack-Signal - Device: 0000000000C2
Helper:
buffer # APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
# APSRequestNodeInfo: Source MAC: 000D6F000278C61F
# APSRequestNodeInfo: Destination MAC:
����? 0000017300
Circles:
Circle_2779a3a:
lastContact 1453682364.02664
name 2779A3A
Circle_2793ec8:
lastContact 1453682367.11902
name 2793EC8
Attributes:
room Plugwise
Wenn ich es mit meinen Python tool versuche, geht das ohne probleme...
Oh, gehts immer noch nicht??
Setze mal bitte ein
attr myPlugwis showCom .*000D6F0002793EC8.*
Dass einen Eventmonitor mit Filter auf "communication" öffnen und danach ein
set myPlugwis reOpen
Dann sollte die gesamte Kommunikation mit deinem Stick protokolliert werden. Schick mir das dann mal als PN bitte.
Auf den ersten Blick siehts für mich aus, als ob dein Stick Kommunikationsprobleme mit den Circles hat.
Hallo,
zuerst einmal will ich sagen das ich es toll finde was Ihr da auf die Beine stellt!!!
jetzt ist mir nicht ganz klar ob das ganze auch mit dem Plugwise Stretch funktioniert. ich habe an meiner PV Anlage den Sunny HomeManager mit 2 SMA Bluetooth Steckdosen am laufen. den Sunny Home Manager habe ich schon in FHEM eingebunden. jetzt würde ich gerne das System erweitern. SMA bieten die Möglichkeit mi dem Plugwise Stretch und den Circles das "Sonnenabhängige schalten" zu erweitern. Ich weiß das ich so etwas auch direkt in FHEM realisieren könnte, aber das traue ich mir noch nicht zu. Also deswegen die Frage: kann ich die Leistungsaufnahme der Circles auch mit dem Stretch in FHEM aufnehmen? und kann ich darüber auch andere Circle die nicht "Sonnenabhängig geschaltet" werden sollen aus FHEM heraus schalten?
viele Grüße,
Michael
Guten Morgen Michael,
hmm, habe gerade eben zum ersten Mal von dem Stretch gelesen und mal schnell 2 Minuten gegoogelt, bevor ich in die Firma fahre.
Das ist ja eigentlich nichts anderes als ein (W)LAN-Client für das Plugwise-System.
Müsste man mal die Datenpakete mitsniffen, die übers Netzwerk kommen, dann kann ich das sicher auch integrieren.
Da ich keinen Stretch habe, wird das aber wohl eher etwas schwierig, denke ich :)
Oder du nimmst den USB-Stick auf dem Stretchgehäuse raus und steckst ihn direkt an deinen FHEM-Client :D
lg, Stefan
PS: Gerade gesehen, dass es scheinbar eine API gibt. Wenn ich die irgendwo in den tiefen des Netztes finde, lässt sich da sicher was machen.
Guten Morgen Stefan,
Danke für die Antwort!
Also ich habe das Teil noch nicht. Ich bin am überlegen ob ich es mir kaufen soll. Da angeblich nur Das System mit dem Sunny Home Manager von SMA funktioniert. Ich recherchiere auch mal weiter. wenn Du da mit der API etwas hinbekommen würdest, wäre ich Dir sehr Dankbar!
lg, Michael
Hallo Michael,
ZitatIch weiß das ich so etwas auch direkt in FHEM realisieren könnte, aber das traue ich mir noch nicht zu
Wieso? Dieser SunnyHomeManager macht ja scheinbar auch nichts anderes, als auf gewisse Werte zu reagieren und dann verschiedene Dinge zu schalten?
Da wird dir auch sicher hier im Forum gut dazu gehelft :)
Zitatden Sunny Home Manager habe ich schon in FHEM eingebunden
Welche Daten hast du denn da? Da könntest du mit FHEM ja evtl. eh direkt drauf reagieren.
Zitatund kann ich darüber auch andere Circle die nicht "Sonnenabhängig geschaltet" werden sollen aus FHEM heraus schalten?
WENN ich die API finde und das dann experimentell (ohne Testgerät) umsetzen kann, dann ja.
lg, Stefan
Moin Stefan,
erst einmal danke für diese super Arbeit!
Allerdings scheitre ich gerade total daran die Circle zu finden.
Das ist meine Ausgabe im Event Monitor
2016.07.14 05:57:43 3 : Opening Plugwise device /dev/ttyUSB0
2016.07.14 05:57:43 3 : Plugwise device opened
2016-07-14 05:57:43 Plugwise Plugwise reOpen
Mein Stick wird anscheint auch erkannt, wobei das auch nicht ganz richtig ausschaut:
Internals:
DEF /dev/ttyUSB0
DeviceName /dev/ttyUSB0
ERRCNT 0
FD 10
NAME Plugwise
NR 22
PARTIAL
STATE opened
TYPE Plugwise
Readings:
2016-07-14 05:47:06 Buffer 0
2016-07-14 05:57:43 state opened
Helper:
buffer ���s�s�W���
Attributes:
WattFormat %0.f
circlecount 13
interval 10
room Plugwise
showCom .*
Nutze ich als DEF aber die Serielle Schnittstelle, bekomme ich folgende Ausgabe und habe keine Connect:
Internals:
CFGFN
DEF /dev/ttyPlugwise@115200
DeviceName /dev/ttyPlugwise@115200
ERRCNT 0
NAME myPlugwise
NR 107
PARTIAL
STATE disconnected
TYPE Plugwise
Readings:
2016-07-14 06:07:58 state disconnected
Attributes:
WattFormat %0.f
circlecount 50
interval 10
room Plugwise
Kannst du mir da weiter helfen?
lg Flo
Edit:
Fehler gefunden!!! Gerade noch eine Tasse Kaffee getrunken und dann ist mir der Fehler direkt ins Auge gesprungen.
/dev/ttyUSB0 &/oder /dev/ttyPlugwise@115200 ist/sind falsch - Richtige Schreibweise lautet in meinem Fall /dev/ttyUSB0@115200
Danke noch mal für diese hammer Arbeit! Die Steckdosen schalten mega Schnell - jetzt kann ich mich so langsam mit Automationen auseinander setzen :)