Plugwise ohne Server direkt auslesen/schalten

Hallo axel

War mit der familie ein paar Tage auf Kurzurlaub drum war meinerseits Funkstille.

Hab hier noch die vor einiger Zeit gepostete Lösung mit kombiniertem minütlichen und stündlichen auslesen der im Buffer geloggten Daten laufen. Soweit ist das nun auch ganz brav.
Hab dann noch ein paar Variablen für Tages/Vortag/Monats/Vormonat/Jahres verbrauch bzw. Kosten hinzugefügt.
Das ist jetzt ganz analog zu Andres S0 Counter.

Eines klappt hier aber noch nicht sauber. Von meinen 10 Circeln wird einer ganz beharrlich verweigert.
Der antwortet auf die „0018“ Abfrage einfach nicht.
Die Suche bei „00“ Anfangen ist nicht der Grund. Adresse ist ganz Analog zu den übrigen 9 Stk. kann da nix besonderes nicht erkennen.

Werd heute Abend da noch ein bisl spielen.

gruß
bb

Hallo
Hab da heute bei mir mal rumprobiert.
Die erste Frage war . Was ist max Anzahl von Circles?
Hab irgendwo gelesen 64 . Das waeren Hex 00 - 3F .
Wenn man aber ueber „0018“ Abfrage ueber dezimal 40 kommt wird das mit
Fehler quittiert.

Kann das jemand bestaetigen ?

Hallo
Die Umsetzung von Plugwise als IPSLibrary-Modul ist (fast) fertig.
Vielen Dank an axelp!
Hab seine Scripte genommen in ein Modul eingebunden.
Ich mache nur die Installation als IPSLibrary-Modul.
Die Logik im Script bleibt bei axelp.
Ist wohl klar das im Moment alles noch Beta ist.
Aber jede Idee her damit.
Die Installation ueber Internet laeuft im Moment ohne Fehler.
Voraussetzungen ist eigentlich keine.
In der Konfiguration muss nur der COMPort angeben werden.

Wer IPSLibrary schon hat und das mal testen will , einfach mal ne mail.

Aber jetzt kommt die Frage. Was noch fehlt ist das Webfront.
Wie sollte oder koennte sowas aussehen.
Wer hat schon was? Screenshots?
Dann baue ich das ein.

Ich denke man muß in HEX Zählen.
Da klappts von 0-64
Ab „65“ gibts dann Fehler vom Stick.

Code dazu sieht zb. so aus.

		case "00DD":  // Antwort auf 0008 - Anfrage nach Circle+
					   $macplus = substr($buf,12,16);

						// Dummy Instanz für Circle+ anlegen
						$myCat = @IPS_GetObjectIDByIdent($macplus, $idCatCircles);
						if ($myCat == false) createCircle($macplus, $idCatCircles);

			//		   PRINT "PW MC+:".$macplus.", Now searching for Circles...";
						for ($i = 0; $i < 64; $i++) {
			          PW_SendCommand("0018".$macplus.str_pad(strtoupper(dechex($i)),2,'0',STR_PAD_LEFT));
						}
						
						break;

					default:
						print "Fehler von Stick: ".$buf;  //bei allem anderen
						break;
				}
				break;

Meinen einem widerspenstigen findet er aber immer noch nicht, schnieef.
Werd ich ihn halt händisch anlegen.

Thema WF:
An ein paar hübschen Highcharts Grafiken bastel ich gerade. Bin aber noch nicht zufrieden damit. Das muß schöner werden.

gruß
bb

Hallo,

danke an 1007 für die Übertragung ins IPSLibrary. Ganz nebenbei finde ich es fantastisch wie hier zusammen gearbeitet wird. Jannis hat die Grundlagen geschaffen, ich hab es in Skripten abstrahiert, 1007 jetzt nach IPSLibrary portiert.

Zur Frage bzgl. Darstellung im Webfront:

Erst mal vorab: da PW kein echten Schalter dran hat, benutze ich es auch selten um Geräte direkt zu schalten. Der WAF würde in den Keller gehen, im schlimmsten Fall wird der Zwischenstelcer dann halt ausgeklinkt. Ich versuche mit PW stattdessen mehr Intelligenz ins Spiel zu bringen, sei es Waschmashine ist Fertig-Melder, Geräte ausschalten wenn nicht gebraucht bzw. Haus abwesend (bpsw. Media Center ausschalten wenn TV nicht mehr läuft oder Stromverpester wie mein HP Drucker nur bei Bedarf einzuschalten).

In meinem WebFront bzw. iFront habe ich daher eine Übersicht zur direkten Schaltmöglichkeit, logisch gruppiert in Dummy Modulen. Andererseits eine Verbrauchsübersicht (anbei). Der Rest geht über Skripte automatisch (die Skripte weiter oben im Thread müssten noch laufen). Schliesslich das ganze noch schön dargestellt mit HighCharts…

Danke & Gruß, Axel

PW-Schalten.PNG

PW-MC.PNG

Kurze Wasserstandsmeldung: Auslesen des Gesamtverbrauchs über Buffer schnurrt bei mir wie ein Kätzchen :slight_smile: Wie läuft’s bei euch?

Hallo 1007,

ich habe in Summe 28 Circles und auch drei die sich absolut nicht melden wollten.
Ich habe Sie auf Werkseinstellungen zurückgesetzt und in PlugwiseSource erneut angelernt.
Danach alles wunderbar. Ich vermute die haben sich beim Durchzählen während der Installationsorgien schlichtweg „verzählt“.

Jetzt ist alles wunderbar.

Das mit maximal bis 00 - 3F also 64 ist auch bei mir so - ich hatte das auch irgendwo im Netz gelesen.

Ansonsten fettes Lob an Axelp, Jannis und all die anderen die mit entwickelt haben. Diese Methode und der Controller funktionieren nun wesentlich zuverlässiger und vor allem auch schneller als die WWW-Methode über den Plugwise Server.

Beim Verbrauch bin ich noch nicht auf dem aktuellsten Stand - das kommt bei mir erst noch (wenn ich etwas mehr Zeit dafür habe).

Aktuell lockt mich der VIESSMANN Optolink (bzw. der Nachbau) und das Auslesen meiner Heizungsparameter.

Viele Grüße aus dem Unterallgäu
Harry

Jo,
auch hier fetzt es gut. Verwende aber wie schon geschrieben noch meine eigne Buffer Ausleseversion.

Hab inzwischen auch etwas im Webfront gebastelt.
War eine nette Herausvorderung die vielen Circles(Geräte) auf einer Seite halbwegs übersichtlich unterzubringen.
Mit der rechten Spalte kann ich das Gerät anwählen, alle anderen Elemente werden dann entsprechend upgedated.

Als zweites noch eine Seite welche den Gesamtverbrauch darstellt. Diese bezieht ihre Daten aber von einem 3 Phasenzähler per S0 - 1Wire.

gruß
bb

Hallo
Ich finde dein Webfront sehr gelungen :smiley: Respekt.
Bin mit der Umsetzung in ein IPSLibraryModul mit den Scripten von axelp
so gut wie fertig , es fehlt halt noch ein schoenes Webfront.
In der IPSLibrary kann man schon Circles zu Gruppen zusammenfassen.
Damit braeuchte man nicht alle auf einer Seite anzeigen.
Beispiel: Gruppe Keller, Wohnzimmer etc. Kann dann jeder selbst bestimmen.

Bernhard, sieht wirklich Schick aus. OT: wie bekommst du die Buttons zum Schalten hin und den Backofen integriert? Ist der Server wirklich schaltbar?

Gute Frage :wink:
Bei mir koennte es Sinn machen. Server haengt an einer USV.
Damit koennte man die testen.

Hatte Probleme mit 2 Circles, welche negativen Vebrauch anzeigen. Lösung scheint eine Rekalibrierung zu sein, Code der „PW_Recalibrate.ips.php“ sieht so aus:

include("PW_Include.ips.php");
include("IPSInstaller.ips.php");

$idCatCircles = CreateCategory("Circles",IPS_GetParent($IPS_SELF),0);

// Alle Circles durchlaufen und Zeit auslesen
foreach(IPS_GetChildrenIDs($idCatCircles) as $item){   // alle Unterobjekte durchlaufen
   $id_info = IPS_GetObject($item);

	// Kalibrierungsdaten vom Circle abrufen
	PW_SendCommand("0026".$id_info['ObjectIdent']);

}

Lasse ich jetzt auch ein mal nächtlich ausführen…

Servus

Die Buttons sind nur dazu da die Anzeige der Verbräuche und Plots im Webfront umzuschalten.
Die funktionieren wie „RadioButtons“. Wenn einer gedrückt wird, werden die anderen abgeschaltet. Es ist demnach immer nur einer aktiv.

Quasi so wie eine TabPane nur vertikal anstatt horizontal.

Die Circles selbst schalte ich gar nicht, mach bei den zzt. angschlossenen Geräten keinen Sinn.

gruß
bb

Hallo
Hier mal der aktuelle Stand fuer ein IPSLibraryModul.
Voraussetzung IPSLibrary von Brownson.
Fuer die Plugwise Komponenten keine , ausser
der COMPort des Sticks.
Bei der Installation wird eine Serielle Instanz mit dem in der Konfigurationsdatei
angeben COMPort erstellt.
Cutter und Registervariable werden erstellt und mit den Scripten
von axelp verbunden.
Alles sollte eigentlich ohne Fehler gehen.
Die Links werden wie in der Konfigurationsdatei in Gruppen geordnet.

Circles werden angelegt bei einem „Suchlauf“ und anhand der Liste
in der Konfigurationsdatei.
Nach Aenderungen in dieser Datei einfach ein „Install“ aufrufen.
Die Struktur unter Webfront wird neu aufgebaut.
Ein Webfront fuer den Webfront Configurator gibt es „noch“ nicht,
aber bbernhard hat ein sehr schoenes. So sollte sowas aussehen.

Die Scripts sind unter
Program.IPSLibrary.app.hardware.Plugwise
Die Konfigurationsdatei ist unter
Program.IPSLibrary.confiig.hardware.Plugwise
Die Daten sind unter
Program.IPSLibrary.data.hardware.Plugwise
Die Links fuers Webfront sind unter
Visualization.Webfront.Hardware.Plugwise

Erste Testversion. Aus dem Internet laden mit

	$remoteRepository = 'https://raw.github.com/1007/IPS1007Library/master';
	$component = 'Plugwise';

	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager($component,$remoteRepository);
	$moduleManager->LoadModule($remoteRepository);

Jetzt die Konfigurationsdatei bearbeiten und danach.

	$remoteRepository = 'https://raw.github.com/1007/IPS1007Library/master';
	$component = 'Plugwise';

	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager($component,$remoteRepository);
	

	$moduleManager->InstallModule($remoteRepository);

Hinweise und Verbesserungen , als her damit

Ich habe die Skripte zwar noch nicht installiert und werde wohl auch vor dem Wochenende nicht dazu kommen aber ich muss hier mal meinen Respekt bekunden. :cool:

Das Projekt hier ist wirklich wie aus einem Forum-Lehrbuch entstanden und alleine das mitlesen hat schon eine Menge Spaß gemacht. Daumen ganz weit hoch. :loveips:

Hallo,

habe momentan die Kommunikation über den Plugwiseserver( dank an BoySout ) erfolgreich laufen.
Bin auch am überlegen umzustellen.:rolleyes:
Es gibt einen Bug im Plugwiseserver.
Hab wahrscheinlich nur ich.
Ein Circle hängt am Warmwasserspeicher, aber im Nachtstrombetrieb.
Da wird der Strom vom Anbieter an und abgeschaltet.
Es kam vor wenn der Speicher heizte und der Strom abgeschaltet wurde,
der Circle nicht erreichbar wahr und den letzten Verbrauch im Gesamtverbrauch(kW) berücksichtigte.
Diesen Wert zog ich wieder ab und berichtigte den Fehler.
Ich weis nicht ob eure Version ähnlich ist.
Habe IntegerVariable pro Circle für einen Schwellenwert ob Gerät AUS , in BETRIEB oder FERTIG ist.
Wird im WebFront mit Datumstempel angezeigt ( möchte Beginn(Betrieb) und Endzeit(Fertig) anzeigen , einstweilen nur eine).
Auch für eine Anwesenheitsabfrage Variablen angelegt.
Die Abschaltfunktion bei Unterschreiten eines Wertes bei einer bestimmten Zeit sollte
Intern im Circle gelöst werden, oder?
Kann einer einen Screenshot von den angelegten Circles und Grafen zeigen?

Danke noch mal
:slight_smile:

Betrieb_Fertig.jpg

Servus

ich hab zwar nicht Axels letzte Version in Verwendung, aber ich denke es passiert etwas ähnliches.

Wenn die Stromunterbrechung innerhalb einer Stunde ist passiert nix. Die momentane Anzeige ist ggfl. falsch, Gesamtverbrauch wird aber stimmen.

Wenns länger als eine Stunde dauert gehts aber voraussichtlich daneben.

Irgendwann MUSS das Script ja einen Stundenübertrag machen. Wenn der Circle nun nicht erreichbar ist kann das zwei Ursachen haben:

  • Funkstörung, in dem Fall wäre es richtig so zu tun als ob der gleich Zustand der letzten Erreichbarkeit besteht.
  • oder „Stromausfall“, in dem Fall wäre es richtig die aktuelle Leistung auf „0“ zu setzen.

Egal wie mans macht, es ist immer irgendwann falsch.

gruß
bb

Hallo
Ich versuch das gerade nachzubauen.
Versteh ich das richtig , dass nur einer aktiv sein kann?
Ich meine von zB 2 verschieden PCs kann ich keine 2 verschiedenen
Circles sehen. Wenn ich bei einem umschalte aendern sich auch alle
anderen Webfronts ?

Yup, wenn alle auf das gleiche Webfront zugreifen ist das so.

  • es gibt pro Circle eine Dummy Instanz welche die Links zu den entsprechenden Variablen beinhalten.
  • Im WF Container sind die Dummy Instanzen aller Circles drinnen.
  • Je nach ausgewähltem Button werden diese zwischen Hidden/Visible umgeschaltet.

Dadurch ist immer nur die zugehörige Instanz sichtbar.

Nur wenn jeder PC sein eigenes WF hat dann gibts keine gegenseitige Beeinflussung. Der Konfigurationsaufwand ist halt heftig.

Das Hidden/Visible Umschalten von Instanzen im WF per Buttons oder Widget mach ich recht oft.
Da kriegt man viel Funktionalität rein ohne es optisch zu überladen. zb. läßt sich damit auch sehr schön der Ein/Ausklappeffekt des alten WF nachbilden.

Für die Plugwise Seite hab ichs gewählt um eine TabPane-Zeile zu sparen. Auch wären die TabPane Zeile bei vielen Geräten recht lang geworden.

Wennst magst kann ich dir gerne mal mein WF nach extern zum rumspielen freischalten.

gruß
bb

TEXT war doppelt - richtiger Text nächster Beitrag #141
Sorry.
Harry