Läuft: Heizung mit eBus-Schnittstelle

Begonnen von Prof. Dr. Peter Henning, 29 November 2014, 13:36:59

Vorheriges Thema - Nächstes Thema

jamesgo

Hallo Kawa,

wenn du im Web UI ganz unten auf "Device specific help" klickst, dann bekommst du die Commandref zum Modul.

Gut ist dass du erst mal ohne Schreibzugriffe anfangen willst.

Im Wesentlichen:

- über "set" eine Variable auswählen, die du regelmäßig abfragen willst.
- durch klicken auf "set" ein Attribut erzeugen z.B. heist das Attribut dann "r~430~Date~Datum"
- diesem Attribut einen Wert geben. Dieser Wert ist dann der Name für dein reading, dass per default alle 300 Sekunden abgefragt wird.

Viel Erfolg
Andy

Jojo11

Zitat von: jamesgo am 13 September 2015, 10:17:10
Hallo Jo,

die .csv Dateien sind die Basis. Wenn die Parameter nach eine Änderung "weg" sind (weil Umbenannt) führt das zu Lesefehlern, bzw timeouts. Das passt auch zu den Meldungen, die dir im Log aufgefallen sind.

Bevor ich einen neuen Befehl zum ebusd schicke lese ich nochmal von dem socket. Wenn ich da was zurückbekomme bedeutet das, dass die Antwort auf die letzte Abfrage zu spät gekommen ist und nicht verarbeitet wurde. ("old message").
Wenn bei diesem ersten lesen nichts zurückkommt, der ebusd aber danach noch eine Antwort auf einen alten Befehl liefert.
Dann verschieben sich die Werte (was du auch beobachtest) und beim nächsten lesen kommt wieder ein "old message".

Änder doch mal in Zeile 749 den timeout von

my $timeout = 1.8;
in
my $timeout = 5;

Evtl. ist dein ebusd auch langsamer als meiner und der timeout zu klein (Ich verwende einen beaglebone black ... der hat 2 cores. Der "alte" Raspberry PI hat nur einen core)

Das sollte dein Problem lösen.

Grüße
Andy

Danke, nachdem ich timeout hochgesetzt habe, verschwindet die Meldung. Mein ebusd läuft auf einem RPi B der ersten Generation.

schöne Grüße
Jo

jamesgo

Hallo Jo

Prima. Dann werde ich den höheren Timeout als default übernehmen.

Grüße
Andy

kawa0815

Zitat von: jamesgo am 13 September 2015, 13:00:10
Hallo Kawa,



- über "set" eine Variable auswählen, die du regelmäßig abfragen willst.
- durch klicken auf "set" ein Attribut erzeugen z.B. heist das Attribut dann "r~430~Date~Datum"
- diesem Attribut einen Wert geben. Dieser Wert ist dann der Name für dein reading, dass per default alle 300 Sekunden abgefragt wird.

Viel Erfolg
Andy

Danke, ich hätte gleich fragen sollen!

Geht alles soweit.

kawa

Reinhart

#994
Zitat von: jamesgo am 13 September 2015, 11:42:21
Hallo Reinhart,

ich habe mal eine Version erstellt, bei der die Umlaute durch die html entities ersetzt werden. (siehe Anhang)

Ist dein Anzeigeproblem damit gelöst?

Grüße
Andy

leider nein!

Ich nehme an, es geht um diese Stelle:
      s/ä/\ä/g;
      s/Ä/\Ä/g;
      s/ü/\ü/g;
      s/Ü/\Ü/g;
      s/ö/\ö/g;
      s/Ö/\Ö/g;
      s/ß/\ß/g;
      s/\"/\"/g;

die letzte Zeile habe ich geändert weil sich mein Highlighter im PSPad hier beschwert hatte. Ich habe auch versucht ein großes A durch Doppel AA zu ersetzen, klappt auch nicht. Selbst eine Neustart des Raspi zeigt hier keine Änderung.

Ebenfalls habe ich noch ein "cat bai.csv" versucht, hier werden Umlaute richtig ausgegeben (weil ja Putty bei SSH + Telnet auf UTF-8 eingestellt ist). Generell klappen auch Umlaute in Fhem, Räume etc. kann ich problemlos mit Umlauten anlegen. Ich habe auch etwas gegoogelt, offensichtlich haben einige diese Art von Problem und dürfte wirklich UTF-8 basierend sein. Komisch nur, dass ich im Augenblick ich der einzige hier bin, der dieses Phänomen hat. Bin mir gar nicht sicher ob das überhaupt von GAEBUS kommt. Wenn das nur bei mir so ist, kann ich ja bis ich den Fehler gefunden habe die Texte in den csv vorerst ändern.

Meine Umgebung: Rasperry Pi 2 mit Rasbian

Trotzdem ein Dankeschön für deine Mühe!

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Jojo11

Hallo,

mir ist noch etwas aufgefallen. Wenn ich z.B. die Solltemperatur mit "set xxx xxx 21" über das Interface ändere (bestätigt durch "done") und unmittelbar danach mit ebusctl über die commandline den selben Parameter abfrage, ist die Änderung noch nicht umgesetzt. Erst wenn ich über das Interface mit "get xxx xxx" den Wert abfrage, ist dieser geändert, was auch über ebusctl bestätigt wird. Bedeutet das, dass eine Änderung auch nur im 2-Minuten-Intervall übertragen wird und man für eine unmittelbare Übertragung den entsprechenden Wert gleich nach dem Setzen nochmal Abrufen sollte?

schöne Grüße
Jo

jamesgo

Hallo Jo,
das Setzen eines Wertes wird direkt an den ebusd geschickt und das "done" ist die Antwort.

Beim Abfragen über ebusctl bekommst du einen Wert aus dem cache des ebusd.
Du musst die "-f" oder "-m 1" Option verwenden damit der read den Wert tatsächlich abfrägt.

Der "get" verwendet immer die "-f" Option. Deshalb ist der cache danach aktualisiert.

Grüße
Andy

Reinhart

@jamesgo

habe den Fehler jetzt gefunden, kann aber nicht genau sagen was es war.
Ich habe mit sudo die csv Files vom Fhem Raspi gelöscht und vom ebus Raspi nochmals rüber kopiert und sofort die locale Attribute kontrolliert.
Habe auch noch den Gegentest mit deiner Übersetzung gemacht und diese entfernt, dann funktioniert lustigerweise nur das "ü" nicht, der Rest klappt.

D.H. die Version die du mir gepostet hast funktioniert bei meiner Konfiguration mit der Anzeige jetzt zu 100%.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

nightstorm99

Zitat von: jamesgo am 11 September 2015, 20:30:24
Hallo Denny,

das war aber eine schnelle Antwort :-)

Ich möchte dich nicht desillusionieren aber so wie die DCF die Zeit meine Heizung immer wieder korrigiert kann es sein dass ein Steuerungseingriff immer wieder überschrieben wird.

Du kannst aber bestimmt Parameter wie folgende ändern:
- Heizkurve
- Zeitprogramme (wann soll die Pumpe laufen)
- Soll-Temperaturen
- Party-Modus
- Urlaubs-Zeiten usw.

Wenn aber meine "470" dem "bai" einen Befehl schickt ... dann macht sie das immer wieder und hartnäckig.
An dieser Stelle Eingreifen zu wollen wird nicht funktionieren.

Grüße
Andy

Hallo Andy,

das ist mir schon klar was ich steuern soll und was nicht.

Jetzt ist es bei mir so, das die Warmwasser Zirkulation in der Woche nur Früh und Abends läuft.
Also wenn jemand zu Hause ist.
Wenn meine Frau jetzt aber mal einen Tag frei hat, beklagt sie sich immer das sie kein Warmwasser hat.
Nun möchte ich es über eine Perlfunktion so lösen, das man das Wochenprogramm von der Zirkulation anpassen kann.
Also auswerten was für eine Wochentag ist, Zeitprogramm in Heizung anpassen und am Abend über ein at wieder zurück setzen.
Ich denke das sollte gehen oder?

Ab wann ist die neue Version Online?
Ich denke wir sollten einen neuen Thread aufmachen, wo es direkt um GAEBUS geht oder?!?!?!?!

Danke und Gruß
Denny

Jojo11

Zitat von: jamesgo am 13 September 2015, 18:56:29
Hallo Jo,
das Setzen eines Wertes wird direkt an den ebusd geschickt und das "done" ist die Antwort.

Beim Abfragen über ebusctl bekommst du einen Wert aus dem cache des ebusd.
Du musst die "-f" oder "-m 1" Option verwenden damit der read den Wert tatsächlich abfrägt.

Der "get" verwendet immer die "-f" Option. Deshalb ist der cache danach aktualisiert.

Grüße
Andy

Alles klar, wieder etwas gelernt  :o
Vielen Dank!

schöne Grüße
Jo

jamesgo


mikel279

Zitat von: Reinhart am 13 September 2015, 17:47:28
leider nein!

Ich nehme an, es geht um diese Stelle:
      s/ä/\ä/g;
      s/Ä/\Ä/g;
      s/ü/\ü/g;
      s/Ü/\Ü/g;
      s/ö/\ö/g;
      s/Ö/\Ö/g;
      s/ß/\ß/g;
      s/\"/\"/g;

die letzte Zeile habe ich geändert weil sich mein Highlighter im PSPad hier beschwert hatte. Ich habe auch versucht ein großes A durch Doppel AA zu ersetzen, klappt auch nicht. Selbst eine Neustart des Raspi zeigt hier keine Änderung.

Ebenfalls habe ich noch ein "cat bai.csv" versucht, hier werden Umlaute richtig ausgegeben (weil ja Putty bei SSH + Telnet auf UTF-8 eingestellt ist). Generell klappen auch Umlaute in Fhem, Räume etc. kann ich problemlos mit Umlauten anlegen. Ich habe auch etwas gegoogelt, offensichtlich haben einige diese Art von Problem und dürfte wirklich UTF-8 basierend sein. Komisch nur, dass ich im Augenblick ich der einzige hier bin, der dieses Phänomen hat. Bin mir gar nicht sicher ob das überhaupt von GAEBUS kommt. Wenn das nur bei mir so ist, kann ich ja bis ich den Fehler gefunden habe die Texte in den csv vorerst ändern.

Meine Umgebung: Rasperry Pi 2 mit Rasbian

Trotzdem ein Dankeschön für deine Mühe!

LG

zunächst mal Hallo in die Runde, bin zwar nicht Neu hier, habe die gesamte Zeit mitgelesen und versucht umzusetzen - hat dank diese Thread auch super funktioniert.

Daher erstmal vielen Dank an alle Beteiligten insbesondere für den ebusd und auch für das GAEBUS Modul!!! :)

@Reinhart: Nein Du bist nicht alleine und ich wollte auch schon die Texte in der csv ändern - aber Dank jamesgo scheint das ja jetzt nicht mehr notwendig - kann leider noch nicht testen, da ich nicht zuhause bin. Melde mich sobald ich getestet habe in dem neuen Thread für GAEBUS.

LG an alle für die wirklich super Arbeit!

Mikel

Prof. Dr. Peter Henning

Wenn wir einen Chipsatz empfehlen, wieso sollte dann ein anderer "auch i.O." sein ?

LG

pah

Prof. Dr. Peter Henning

Nun, das ist ein sinnvolles Argument, dann sollte das auch mit demModul funktionieren - aber eine Garantie kann natürlich niemand übernehmen.

LG

pah

amunra

@john30
mir ist aufgefallen, dass die Rückgabewerte von dem Befehl "find -f" unstimmig sind.
Ich bin mir nicht sicher, ob das ein Bug ist oder ich das Ergebnis falsch interpretiere.
Es geht im speziellen um das Feld "comment" (ich nenne es "description") (Achtung: nicht zu verwechseln mit dem Feld/der Spalte [comment]) - bei diversen Einträgen entspricht der Wert im Feld "comment" mit dem Wert der in der CSV Datei hinterlegt ist.
Bei diversen Einträgen stehen jedoch Werte, die ich nicht nachvollziehen kann.
(http://up.picr.de/23133503ix.jpg)
Beispiel:
find -f ActualWeekday
ergibt:
r,430,ActualWeekday,Wochentag,,15,b509,0d5f00,bday,s,BDY,0=Mon;1=Tue;2=Wed;3=Thu;4=Fri;5=Sat;6=Sun,,Aktueller Wochentag
"comment" entspricht also: "Aktueller Wochentag" (siehe Screenshot)
Der Wert entspricht dem Wert, der in der CSV hinterlegt ist - so weit so gut.
Mit dem Befehl:
find -f BMUFlowTempOrVF1
erhalte ich:
r,430,BMUFlowTempOrVF1,Vorlauftemperaturfühler 1,,15,b509,0d8700,tempsensor,s,D2C,,°C,Temperatur,sensor,s,UCH,0=ok;85=circuit;170=cutoff,,Fühlerstatus
"comment" entspricht also: "Fühlerstatus" (siehe Screenshot)
Den Wert finde ich nicht in der CSV! In der CSV steht der Wert: "value of either an externally connected flow temperature sensor or the BMU's internal flow sensor if an external sensor is missing"
Dieses Verhalten zieht sich durch alle Werte durch - manche entsprechen der Beschreibung, die in der CSV hinterlegt ist, aber eben nicht alle.

Könntest du bitte erklären wie die Werte zustande kommen?

Wenn ich noch ein Wunsch äußern dürfte: Ich würde mir wünschen die Felder, die mit dem Befehl "find -f" zurückgegeben werden zu bestimmen.
Beispiel:
find -r -w -f [type][poll][circuit][comment][spalte n]

Ok, wenn wir bei den Wünschen schon sind [nice to have] ;o)
Die ebusd Version auch über telnet abfragen zu können anstatt über die tools. Hintergrund ist, dass FHEM nicht zwangsläufig auf dem System läuft auf dem die ebus-tools installiert sind.

Danke und Viele Grüße
Arthur