Wie Thermoelement-Verstärker MAX31855 in Fhem einbinden

Begonnen von exot, 21 Oktober 2015, 08:47:30

Vorheriges Thema - Nächstes Thema

exot

Hallo Thorsten,
2015.10.23 20:55:11 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:55:17 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:55:17 3: HM485_QueueStepFailed: Call step
2015.10.23 20:55:17 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:55:23 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:55:24 3: HM485_QueueStepFailed: Call step
2015.10.23 20:55:24 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:55:30 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:55:31 3: HM485_QueueStepFailed: Call step
2015.10.23 20:55:31 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:55:37 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:55:37 3: HM485_QueueStepFailed: Call step
2015.10.23 20:55:37 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:55:43 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:55:44 3: HM485_QueueStepFailed: Call step
2015.10.23 20:55:44 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:55:50 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:55:50 3: HM485_QueueStepFailed: Call step
2015.10.23 20:55:50 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:55:56 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:55:57 3: HM485_QueueStepFailed: Call step
2015.10.23 20:55:57 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:03 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:04 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:04 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:10 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:10 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:10 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:16 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:17 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:17 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:23 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:24 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:24 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:30 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:30 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:30 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:36 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:37 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:37 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:43 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:44 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:44 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 20:56:50 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 20:56:50 3: HM485_QueueStepFailed: Call step
2015.10.23 20:56:50 3: HM485: RESPONSE TIMEOUT for 0001129C

Hier sehe ich keine Veränderung; aber hier:Bild
Die Temperatur verändert sich aber nicht bei Erwärmung.
Erst wenn ich "{my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";;qx($cmd)}"wiederhole
hat sich der Wert verändert (70) kein Bild
Gruß Michael

Thorsten Pferdekaemper

Zitat von: exot am 23 Oktober 2015, 21:01:43Hier sehe ich keine Veränderung;
Natürlich, die Fehlermeldung ist weg!
Zitat
aber hier:Bild
Ja das ist mal ein Erfolg.
Zitat
Die Temperatur verändert sich aber nicht bei Erwärmung.
Erst wenn ich "{my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";;qx($cmd)}"wiederhole
hat sich der Wert verändert
Das ist klar, warum sollte FHEM auch automatisch das immer wieder aufrufen.
Es geht jetzt folgendermaßen weiter: Du legst einen Dummy an, der als Reading die Temperatur bekommt. Außerdem ein at, das alle Minute (oder wie oft Du willst) aufgerufen wird. Das Coding im at ruft dann obiges Kommando auf und schreibt den Wert in den Dummy. Der Befehl im at (also das, was zyklisch ausgeführt wird), müsste ungefähr so aussehen:

{my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";readingsSingleUpdate($defs{"Thermo"},"temperatur", qx($cmd), 1)}

Den Namen "Thermo" musst Du durch den Namen des angelegten dummys ersetzen. Es kann sein, dass Du auch hier ";;" statt ";" schreiben musst. Das weiß ich nicht auswendig.
Gruß,
   Thorsten
FUIP

exot

Hallo Thorsten,
Dann werde ich morgen versuchen ob ich das hin bekomme.
Ich bedanke mich für Deine Hilfe und melde mich wieder.
Einen schönen Abend wünscht Michael

exot

Hallo Thomas,
Danke für Deine Engelsgeduld.
Ich möchte noch mal Deine Hilfe in Anspruch nehmen.
Mit "define Brennraumtemperatur dummy" bin ich nicht weiter gekommen.
Habe dann:
define Brennraumtemperatur at +*00:01:00 {my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";readingsSingleUpdate($defs{"Brennraumtemperatur"},"temperatur", qx($cmd), 1)}
probiert und hier wird jede 1 Minute aktualisiert. Leider keine Temperatur sondern die Zeit.
Wenn ich jetzt versuche dummy zu installieren  soll ich erst Brennraumtemperatur at deinstallieren.
Wie kann ich < Readings/state/next Zeit > wechseln, damit ich hier die temperatur angezeigt bekomme.
Mir ist bewusst, dass Du einen anderen Weg vorgeschlagen hast, aber wie gesagt da ist nichts geschehen.
Gruß Michael



Thorsten Pferdekaemper

Zitat von: exot am 24 Oktober 2015, 10:50:37
Hallo Thomas,
Du solltest lernen, etwas genauer hinzuschauen, dann klappt's auch besser mit FHEM. ...oder lass einfach den Namen in der Anrede weg, wenn Du ihn Dir sowieso nicht merken kannst.

Zitat
Mit "define Brennraumtemperatur dummy" bin ich nicht weiter gekommen.
Egal es müsste auch funktionieren, wenn Du das Reading direkt an's at hängst. (Was Du versucht hast.)

Wenn Du Dir das at genau anschaust, dann solltest auch Du sehen, dass da im DEF was fehlt. Das ist wohl nicht das komplette Kommando, oder? Sowas könnte Dir auch selbst auffallen, aber so genau schaust Du ja nicht hin...
Naja, mach mal ein Klick auf "DEF" und stelle sicher, dass da das ganze Kommando steht, also

{my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";readingsSingleUpdate($defs{"Brennraumtemperatur"},"temperatur", qx($cmd), 1)}

Wenn es damit nicht funktioniert, dann verdopple mal den Strichpunkt. Das hatte ich zwar auch schon gesagt, aber wahrscheinlich liest Du nicht wirklich alles. Ich mache mir wirklich Mühe, alle diese Buchstaben einzutippen, da wäre es nett, wenn Du sie auch alle lesen würdest. Möglicherweise funktioniert's dann immer noch nicht auf Anhieb, aber es wird wahrscheinlicher.
Gruß,
   Thorsten
FUIP

exot

Moin,moin,
Um nicht wieder in Verlegenheit zu kommen ;)
Danke für Deine Hilfe sowie die Geduld die mir entgegen gebracht hast.
Es geht hier nicht um richtig lesen oder nicht, wenn die Zusammenhänge nicht klar sind dann kann mann lesen wie man will.
Ich gehe in Richtung 70 und habe vor einem halben Jahr angefangen mich mit Fhem zu beschäftigen.
Programmieren werde ich mit Sicherheit nicht mehr lernen aber dank solcher Zeitgenossen wie Du einer bist ist es uns Senioren auch noch möglich
etwas sinnvolles zu bewerkstelligen. EXOT war schon mit bedacht gewählt.
Das soll aber alles keine Entschuldigung sein.
Die Temperatur wird jetzt prima angezeigt und ich kann weiter experimentieren.
Nochmals ein großes DANKE! :)
Ein schönes Wochenende
wünscht Michael

Thorsten Pferdekaemper

Hi,
freut mich, dass es jetzt funktioniert.
...und entschuldige, wenn ich vielleicht manchmal etwas pampig werde. Es ist nicht böse gemeint. Es gibt halt auch Zeitgenossen, die immer fauler werden, je mehr man hilft.
Kannst Du noch einen Screenshot, auf dem man die Temperatur im Device sieht hier reinstellen? Außerdem wäre es schön, wenn Du den Titel des Threads irgendwie als "gelöst" markieren könntest.
Gruß,
   Thorsten
FUIP

exot

Moin, moin,
Alles Gut :) :) :)
Mir ist noch nicht ganz klar ob das Problem gelöst ist,
denn ich möchte jetzt sehen ob es mir gelingt ein Gplot einzurichten mit dem ich dann die Temperatur in einer Kurve darstellen kann.
Dann stören mich die drei Stellen nach dem ,.
Und wenn das alles klar ist, der MAX läuft ja jetzt auf meiner Testumgebung muss die ganze Geschichte noch auf den Raspberry übertragen werden,
der einen Teil meiner Kesselsteuerung beinhaltet.
In dem Zusammenhang gibt es dort unter ECMDevice (siehe Bild)einen Punkt "AGT: 75 °C - O 2: 16.5 % - BK: Brennkammer °C - AT: Aussentemp °C"
BK:Brennkammer ist genau die Temperatur an der wir jetzt gearbeitet haben. Ist es möglich die dort anzuzeigen?
Hier die Anzeige des Max.(Dummy). Der Fühler wurde mit Feuerzeug erwärmt.
Gruß Michael

Thorsten Pferdekaemper

Zitat von: exot am 24 Oktober 2015, 17:37:22Dann stören mich die drei Stellen nach dem ,.
Warum? Ich habe auch Plots, die auf Werte mit Nachkommastellen beruhen. Das sollte eigentlich funktionieren.

Zitat
In dem Zusammenhang gibt es dort unter ECMDevice (siehe Bild)einen Punkt "AGT: 75 °C - O 2: 16.5 % - BK: Brennkammer °C - AT: Aussentemp °C"
BK:Brennkammer ist genau die Temperatur an der wir jetzt gearbeitet haben. Ist es möglich die dort anzuzeigen?
Ja klar. Entweder Du baust das stateFormat so um, dass es den Wert vom Device Brennkammer liest oder Du änderst das Coding im at so, dass es den Wert direkt in ein Reading des Device Heizkessel schreibt und nimmst dann das. Letzteres halte ich für am elegantesten.
Im Anhang siehst Du auch meinen Heizkessel... Ich habe zwar keine Brennraumtemperatur, aber alles andere schon.
Gruß,
   Thorsten

FUIP

exot

Moin,moin,
Ja; :'( für mein weiteres Vorhaben hat sich mir keine Lösung erschlossen.
Mir ist vollkommen unklar wo ich ansetzen soll.
Es gibt meiner Meinung nach nicht so viele Möglichkeiten, aber damit liege ich wohl daneben.
Das ist der Code der 99_myUtils.pm
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.


package main;
use strict;
use warnings;
use POSIX;

use vars qw {$KeepedRest};

sub
myUtils_Initialize($$)
{
my ($hash) = @_;
my $NewMailtime = time;
}

sub ReportItems($$)
{
my %ItemNotes = (
"T" => "Abgas",
"A" => "Sekundaer",
"O" => "O2",
"V" => "Verlust"
);

my $hash = shift;
my %items = %{shift()};

foreach my $Key (sort keys %items)
{
my $Notation = $ItemNotes{$Key};
my $Value = $items{$Key};
readingsSingleUpdate($hash, $Notation, $Value,1);
}
}

sub AdaptIntervalValue($@)
{
my $Value = shift;
my @CorrectionTable = @{shift()};

my $Prior = 0; my $PriorCorrect = 0; my $Search = 0; my $Correct = 0;
while (@CorrectionTable)
{
($Prior, $PriorCorrect) = ($Search, $Correct);
($Search, $Correct) = (shift @CorrectionTable, shift @CorrectionTable);       
last if $Value <= $Search;
}

my $CorrVal = $PriorCorrect + (($Value - $Prior) * ($Correct - $PriorCorrect) / ($Search - $Prior));
return $CorrVal;
}

sub CorrectAbgas($)
{
my $Abgas = shift;
$Abgas *= 1;
return $Abgas;
}

sub CorrectPrimaerluefter($)
{
my $Primaerluefter = shift;
$Primaerluefter *= 1;
return $Primaerluefter;
}

sub CorrectO2($)
{
my $O2 = shift;
$O2 *= 1;
return $O2;
}

sub CorrectSekundaer($)
{
my $Sekundaer = shift;
$Sekundaer *= 1;
return $Sekundaer;
}

sub CorrectVerlust($)
{
my $Verlust = shift;
$Verlust *= 1;
return $Verlust;
}

# Correct some of the values by special calculation
sub CalcItems($$)
{
my $hash = shift;
my $itemRef = shift;

# the next two arrays can be used to define correction-functions
# definition of functions to correct single values
my @CorrectFuncs =
(
"T" => \&CorrectAbgas,
"O" => \&CorrectO2,
"A" => \&CorrectSekundaer,
"V" => \&CorrectVerlust,
    );

# definition of functions to combine multiple values to new or existing value
my @MultiCorrectFuncs =
(

);

# the next lines normally don't have to be changed
# Correct all values which have defined a correction function with a single parameter   
while (@CorrectFuncs)
{
my ($Search, $Func) = (shift @CorrectFuncs, shift @CorrectFuncs);
if ( exists $itemRef->{$Search} ) { $itemRef->{$Search} = &$Func($itemRef->{$Search}); }
}

# Correct all values which have defined a correction function with mutliple parameter.
while (@MultiCorrectFuncs)
{
my ($Search, $Func, $ParamStr) = (shift @MultiCorrectFuncs,shift @MultiCorrectFuncs,shift @MultiCorrectFuncs);
my @ParamNames = $ParamStr=~/(\w+)\W*/g;

my @ParamArray=();
my $NotUsedParams="";
foreach my $ParamName (@ParamNames)
{
if ( exists $itemRef->{$ParamName} ) { push @ParamArray, $itemRef->{$ParamName} }
else { $NotUsedParams.=$ParamName.","; }
}

if (@ParamNames != @ParamArray)
{
if (@ParamArray != 0)
{
$NotUsedParams =~s/,$//;
Log3 $hash,5,"Incomplete Params to calc \"$Search\". Not found: $NotUsedParams";
}
next;
}

my $Result = &$Func(\@ParamArray);
$itemRef->{$Search} = $Result;
}
}

sub CheckFrame($$)
{
my $name = shift;
my $hash = $defs{$name};

if (!defined $KeepedRest) { $KeepedRest = ""; }
else { Log3 $hash,5,"Used Prefix from prior line: $KeepedRest" };
my $frame = $KeepedRest . shift;

# Pumpe and Primaerluefter have both "P" as key, so change Primaerluefter to PL
$frame =~ s/P(\d{3})/PL$1/g;

# divide into hash-table of [key,value] and take undetected rest into extra var for check
my %items = $frame=~/([A-Za-z]+)([-+]?[\d.]+)\W+/g;
my $Rest=$'; #';

# Keep all rest of line for next use
$frame=~/((.*\r\n)+)/g;
$KeepedRest=$'; #';

CalcItems($hash, \%items);
ReportItems($hash,\%items);

if ($Rest ne '') { Log3 $hash,5,"Unknown rest of frame: $Rest|$KeepedRest (Frame: $frame)" };
Log3 $hash,5,"CheckFrame finished.";
return $KeepedRest;
}


1;

Und das der Eintrag in der fhem.cfg
attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global latitude 54.0883155
attr global logfile ./log/fhem-%Y-%m.log
attr global longitude 13.443615
attr global modpath .
attr global nrarchive 5
attr global room 3.1 System
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

define telnetPort telnet 7072 global
attr telnetPort password 060350
attr telnetPort room 3.1 System

define HMLAN1 HMLAN 192.168.178.32:1000
attr HMLAN1 hmId 2CD99B
attr HMLAN1 hmLanQlen 1_min
attr HMLAN1 loadLevel 0:low,40:batchLevel,90:high,99:suspended
attr HMLAN1 room 3.1 System


define WEB FHEMWEB 8083 global
attr WEB basicAuth cGk6MDYwMzUw
attr WEB longpollSVG 1
attr WEB room 3.1 System

define WEBphone FHEMWEB 8084 global
attr WEBphone basicAuth cGk6MDYwMzUw
attr WEBphone room 3.1 System
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet basicAuth cGk6MDYwMzUw
attr WEBtablet room 3.1 System
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog


define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log
attr autocreate room 4.1 Steuerung


# Disable this to avoid looking for new USB devices on startup
define Wetter Weather 654035 600 de
attr Wetter room 2.1 Umwelt Aussen
define LichtWetter Twilight 54.0883155 13.443615 654035
attr LichtWetter room 2.1 Umwelt Aussen
define fronthem fronthem
define MPM_Thoshiba fronthemDevice 192.168.178.25
define IMO_Baer_MiniPc fronthemDevice 192.168.178.24
define FileLog_RolloWohnzTuer FileLog ./log/RolloWohnzTuer-%Y.log RolloWohnzTuer
attr FileLog_RolloWohnzTuer logtype text
attr FileLog_RolloWohnzTuer room 5.1 FileLog
define SmartPhone fronthemDevice 192.168.178.20
define RolloWohnzTuerAutoZu at *{sunset(0,"07:30","21:30")} set RolloWohnzTuer on
attr RolloWohnzTuerAutoZu room 4.1 Steuerung
attr RolloWohnzTuerAutoZu webCmd auf:pct:zu
define RolloWohnzTuerAutoAuf at *07:30:00 set RolloWohnzTuer off
attr RolloWohnzTuerAutoAuf room 4.1 Steuerung
attr RolloWohnzTuerAutoAuf webCmd auf:pct:zu
define RolloWohnzTerrasse CUL_HM 2776A9
attr RolloWohnzTerrasse IODev HMLAN1
attr RolloWohnzTerrasse autoReadReg 0_off
attr RolloWohnzTerrasse devStateIcon auf:fts_shutter_10@black zu:fts_shutter_100@black 9\d.*:fts_shutter_10@black 8\d.*:fts_shutter_20@black 7\d.*:fts_shutter_30@black 6\d.*:fts_shutter_40@black 5\d.*:fts_shutter_50@black 4\d.*:fts_shutter_60@black 3\d.*:fts_shutter_70@black 2\d.*:fts_shutter_80@black 1\d.*:fts_shutter_90@black 0\d.*:fts_shutter_100
attr RolloWohnzTerrasse eventMap on:zu off:auf
attr RolloWohnzTerrasse expert 2_full
attr RolloWohnzTerrasse firmware 1.7
attr RolloWohnzTerrasse group Jalousien
attr RolloWohnzTerrasse model HM-LC-BL1-FM
attr RolloWohnzTerrasse peerIDs 00000000,
attr RolloWohnzTerrasse room 1.1.0 Wohnz
attr RolloWohnzTerrasse serialNr LEQ0199202
attr RolloWohnzTerrasse sortby 2
attr RolloWohnzTerrasse subType blindActuator
attr RolloWohnzTerrasse webCmd auf:pct:zu
define FileLog_RolloWohnzTerrasse FileLog ./log/RolloWohnzTerrasse-%Y.log RolloWohnzTerrasse
attr FileLog_RolloWohnzTerrasse logtype text
attr FileLog_RolloWohnzTerrasse room 5.1 FileLog
define RolloWohnzGarten CUL_HM 3B85BB
attr RolloWohnzGarten IODev HMLAN1
attr RolloWohnzGarten autoReadReg 0_off
attr RolloWohnzGarten devStateIcon auf:fts_shutter_10@black zu:fts_shutter_100@black 9\d.*:fts_shutter_10@black 8\d.*:fts_shutter_20@black 7\d.*:fts_shutter_30@black 6\d.*:fts_shutter_40@black 5\d.*:fts_shutter_50@black 4\d.*:fts_shutter_60@black 3\d.*:fts_shutter_70@black 2\d.*:fts_shutter_80@black 1\d.*:fts_shutter_90@black 0\d.*:fts_shutter_100
attr RolloWohnzGarten eventMap on:zu off:auf
attr RolloWohnzGarten expert 2_full
attr RolloWohnzGarten firmware 2.5
attr RolloWohnzGarten group Jalousien,
attr RolloWohnzGarten model HM-LC-BL1-FM
attr RolloWohnzGarten peerIDs 00000000,
attr RolloWohnzGarten room 1.1.0 Wohnz
attr RolloWohnzGarten serialNr MEQ0392299
attr RolloWohnzGarten sortby 3
attr RolloWohnzGarten subType blindActuator
attr RolloWohnzGarten webCmd auf:pct:zu
define FileLog_RolloWohnzGarten FileLog ./log/RolloWohnzGarten-%Y.log RolloWohnzGarten
attr FileLog_RolloWohnzGarten logtype text
attr FileLog_RolloWohnzGarten room 5.1 FileLog
define RolloWohnzGartenAutoZu at *{sunset(0,"07:30","21:30")} set RolloWohnzGarten on
attr RolloWohnzGartenAutoZu room 4.1 Steuerung
attr RolloWohnzGartenAutoZu webCmd auf:pct:zu
define RolloWohnzGartenAutoAuf at *07:30:00 set RolloWohnzGarten off
attr RolloWohnzGartenAutoAuf room 4.1 Steuerung
attr RolloWohnzGartenAutoAuf webCmd auf:pct:zu
define RolloKueche CUL_HM 3B84C8
attr RolloKueche IODev HMLAN1
attr RolloKueche autoReadReg 0_off
attr RolloKueche devStateIcon auf:fts_shutter_10@black zu:fts_shutter_100@black 9\d.*:fts_shutter_10@black 8\d.*:fts_shutter_20@black 7\d.*:fts_shutter_30@black 6\d.*:fts_shutter_40@black 5\d.*:fts_shutter_50@black 4\d.*:fts_shutter_60@black 3\d.*:fts_shutter_70@black 2\d.*:fts_shutter_80@black 1\d.*:fts_shutter_90@black 0\d.*:fts_shutter_100
attr RolloKueche eventMap on:zu off:auf
attr RolloKueche expert 2_full
attr RolloKueche firmware 2.5
attr RolloKueche group Jalousien
attr RolloKueche model HM-LC-BL1-FM
attr RolloKueche peerIDs 00000000,
attr RolloKueche room 1.1.1 Küche
attr RolloKueche serialNr MEQ0392056
attr RolloKueche sortby 4
attr RolloKueche subType blindActuator
attr RolloKueche webCmd auf:pct:zu
define FileLog_RolloKueche FileLog ./log/RolloKueche-%Y.log RolloKueche
attr FileLog_RolloKueche logtype text
attr FileLog_RolloKueche room 5.1 FileLog
define RolloKuecheAutoZu at *{sunset(0,"07:30","21:30")} set RolloKueche on
attr RolloKuecheAutoZu room 4.1 Steuerung
attr RolloKuecheAutoZu webCmd auf:pct:zu
define RolloKuecheAutoAuf at *07:30:00 set RolloKueche off
attr RolloKuecheAutoAuf room 4.1 Steuerung
attr RolloKuecheAutoAuf webCmd auf:pct:zu
define RolloDiele CUL_HM 3B9B76
attr RolloDiele IODev HMLAN1
attr RolloDiele autoReadReg 0_off
attr RolloDiele devStateIcon auf:fts_shutter_10@black zu:fts_shutter_100@black 9\d.*:fts_shutter_10@black 8\d.*:fts_shutter_20@black 7\d.*:fts_shutter_30@black 6\d.*:fts_shutter_40@black 5\d.*:fts_shutter_50@black 4\d.*:fts_shutter_60@black 3\d.*:fts_shutter_70@black 2\d.*:fts_shutter_80@black 1\d.*:fts_shutter_90@black 0\d.*:fts_shutter_100
attr RolloDiele eventMap on:zu off:auf
attr RolloDiele expert 2_full
attr RolloDiele firmware 2.5
attr RolloDiele group Jalousien
attr RolloDiele model HM-LC-BL1-FM
attr RolloDiele peerIDs 00000000,
attr RolloDiele room 1.1.2 Diele
attr RolloDiele serialNr MEQ0391528
attr RolloDiele sortby 5
attr RolloDiele subType blindActuator
attr RolloDiele webCmd auf:pct:zu
define FileLog_RolloDiele FileLog ./log/RolloDiele-%Y.log RolloDiele
attr FileLog_RolloDiele logtype text
attr FileLog_RolloDiele nrarchive 1
attr FileLog_RolloDiele room 5.1 FileLog
define RolloDieleAutoZu at *{sunset(0,"07:30","21:30")} set RolloDiele on
attr RolloDieleAutoZu room 4.1 Steuerung
attr RolloDieleAutoZu webCmd auf:pct:zu
define RolloDieleAutoAuf at *07:30:00 set RolloDiele off
attr RolloDieleAutoAuf room 4.1 Steuerung
attr RolloDieleAutoAuf webCmd auf:pct:zu
define RolloWCAutoZu at *{sunset(0,"07:30","21:30")} set RolloWC on
attr RolloWCAutoZu room 4.1 Steuerung
attr RolloWCAutoZu webCmd auf:pct:zu
define RolloWCAutoAuf at *07:30:00 set RolloWC off
attr RolloWCAutoAuf room 4.1 Steuerung
attr RolloWCAutoAuf webCmd auf:pct:zu
define RolloWC CUL_HM 3B9BCC
attr RolloWC IODev HMLAN1
attr RolloWC autoReadReg 0_off
attr RolloWC devStateIcon auf:fts_shutter_10@black zu:fts_shutter_100@black 9\d.*:fts_shutter_10@black 8\d.*:fts_shutter_20@black 7\d.*:fts_shutter_30@black 6\d.*:fts_shutter_40@black 5\d.*:fts_shutter_50@black 4\d.*:fts_shutter_60@black 3\d.*:fts_shutter_70@black 2\d.*:fts_shutter_80@black 1\d.*:fts_shutter_90@black 0\d.*:fts_shutter_100
attr RolloWC eventMap on:zu off:auf
attr RolloWC expert 2_full
attr RolloWC firmware 2.5
attr RolloWC group Jalousien
attr RolloWC model HM-LC-BL1-FM
attr RolloWC peerIDs 00000000,
attr RolloWC room 1.1.3 WC
attr RolloWC serialNr MEQ0391443
attr RolloWC subType blindActuator
attr RolloWC webCmd auf:pct:zu
define MichelErich fronthemDevice 192.168.178.28
define RolloWohnzTuer CUL_HM 2D5250
attr RolloWohnzTuer IODev HMLAN1
attr RolloWohnzTuer autoReadReg 0_off
attr RolloWohnzTuer devStateIcon auf:fts_shutter_10@black zu:fts_shutter_100@black 9\d.*:fts_shutter_10@black 8\d.*:fts_shutter_20@black 7\d.*:fts_shutter_30@black 6\d.*:fts_shutter_40@black 5\d.*:fts_shutter_50@black 4\d.*:fts_shutter_60@black 3\d.*:fts_shutter_70@black 2\d.*:fts_shutter_80@black 1\d.*:fts_shutter_90@black 0\d.*:fts_shutter_100
attr RolloWohnzTuer eventMap on:zu off:auf
attr RolloWohnzTuer expert 2_full
attr RolloWohnzTuer firmware 2.5
attr RolloWohnzTuer group Jalousien
attr RolloWohnzTuer model HM-LC-BL1-FM
attr RolloWohnzTuer peerIDs 00000000,
attr RolloWohnzTuer room 1.1.0 Wohnz
attr RolloWohnzTuer serialNr LEQ0631780
attr RolloWohnzTuer sortby 1
attr RolloWohnzTuer subType blindActuator
attr RolloWohnzTuer userReadings smartvisu_icon { ReadingsNum("RolloWohnzTuer","pct",0)*2.55;;}
attr RolloWohnzTuer webCmd auf:pct:zu
define FileLog_HM_2D5250 FileLog ./log/HM_2D5250-%Y.log HM_2D5250
attr FileLog_HM_2D5250 logtype text
attr FileLog_HM_2D5250 room CUL_HM
define RolloWohnzTerrasseAutoAuf at *07:30:00 set RolloWohnzTerrasse off
attr RolloWohnzTerrasseAutoAuf room 4.1 Steuerung
attr RolloWohnzTerrasseAutoAuf webCmd auf:pct:zu
define RolloWohnzTerrasseAutoZu at *{sunset(0,"07:30","21:30")} set RolloWohnzTerrasse on
attr RolloWohnzTerrasseAutoZu room 4.1 Steuerung
attr RolloWohnzTerrasseAutoZu webCmd auf:pct:zu

define FlammTronik ECMD serial /dev/ttyUSB0@19200
attr FlammTronik classdefs FT=/opt/fhem/ECMD/Flammtronik.classdef
attr FlammTronik logTraffic 0
attr FlammTronik partial 5
attr FlammTronik requestSeparator
attr FlammTronik room Heizraum
define Heizkessel ECMDDevice FT
attr Heizkessel IODev FlammTronik
attr Heizkessel event-on-change-reading .*
attr Heizkessel room Heizraum
attr Heizkessel stateFormat AGT: Abgas °C - O 2: O2 % - BK: Brennkammer °C - AT: Aussentemp °C
attr Heizkessel verbose 5
define FlamLog FileLog ./log/FlamLog-%Y-%m-%d.log Heizkessel:Abgas:.*|Heizkessel:O2:.*|Heizkessel:Sekundaer:.*|Heizkessel:Verlust:.*
attr FlamLog nrarchive 5
attr FlamLog room Heizraum
define SVG_FlamLog_1 SVG FlamLog:SVG_FlamLog_1:CURRENT
attr SVG_FlamLog_1 room Heizraum
define SVG_FlamLog_2 SVG FlamLog:SVG_FlamLog_2:CURRENT
attr SVG_FlamLog_2 room Heizraum

Ist hier etwas erkennbar wo ich ansetzen kann?
Wichtig : Das sind die Auszüge aus meiner Arbeitsumgebung, da die Flamm TroniK/Lambda Check nicht auf meiner Testumgebung integriert ist.
Gruß Michael

Thorsten Pferdekaemper

Hi,
ich weiß nicht so genau, was Du momentan vorhast. Vielleicht die Anzeige der Brennkammertemperatur im "state"?
Ich dachte eigentlich, man müsste dafür etwas hier machen:

attr Heizkessel stateFormat AGT: Abgas °C - O 2: O2 % - BK: Brennkammer °C - AT: Aussentemp °C

...muss man aber wahrscheinlich gar nicht.
Ich verwende stateFormat etwas anders, aber so müsste es auch gehen. Das erwartet ein Reading "Brennkammer" im Device "Heizkessel". Du verschiebst also am Besten das Reading vom Dummy direkt zum Heizkessel. Dazu müsste das Coding im at etwa so aussehen:

{my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";readingsSingleUpdate($defs{"Heizkessel"},"Brennkammer", qx($cmd), 1)}

Dann müsste das klappen. Die Anzeige sollte sich dann nach etwa einer Minute ändern. Dann solltest Du das Reading auch ins FileLog übernehmen können und danach auch in den Plot.
Gruß,
   Thorsten
FUIP

exot

Hallo Thorsten,
Ich bin total am Boden zerstört. Habe jetzt den MAX von der Testumgebung in die Betriebsumgebung gewechselt.
Die Installation und Programmierung habe ich wie vormals ausgeführt.
Es kommen aber auf der Konsole keine Temperaturwerte.
Habe alle Daten mit der Installation auf der Testumgebung verglichen - konnte keinen Unterschied feststellen.
Hast Du eine Idee wo ich ansetzen könnte.
Gruß Michael


Thorsten Pferdekaemper

Zitat von: exot am 26 Oktober 2015, 13:07:50
Hallo Thorsten,
:)

Zitat
Ich bin total am Boden zerstört. Habe jetzt den MAX von der Testumgebung in die Betriebsumgebung gewechselt.
Die Installation und Programmierung habe ich wie vormals ausgeführt.
Es kommen aber auf der Konsole keine Temperaturwerte.
Habe alle Daten mit der Installation auf der Testumgebung verglichen - konnte keinen Unterschied feststellen.
Hast Du eine Idee wo ich ansetzen könnte.
Tja, Du warst ja schon so weit, als Du den Thread erstellt hast. Wie hattest Du es denn da geschafft?
Hast Du die richtigen Pins verwendet? Alles ansonsten korrekt angeschlossen?
Alle Voraussetzungen installiert? (apt-get...-Kram?)
Gruß,
   Thorsten
FUIP

exot

Moin, moin
Ich habe jetzt nochmals alles überprüft und auch nochmal den MAX umgesteckt.
Keine Änderung.
Nun habe ich mir unter <gpio readall> die GpIO angesehen und verglichen
Ich glaube hier liegt das Problem
Testumgebung: GPIO18/IN/0;  24/OUT/1;  25/OUT/0
Arbeitsumgebg: GPIO18/IN/0;  24/IN/0;     25/IN/0
Dann kann natürlich nichts angezeigt werden.
Ich verstehe nur nicht,warum in der Testumgebung die GPIO's automatisch zugewiesen wurden und in der Arbeitsumgebung nicht.
Gruß Michael

Thorsten Pferdekaemper

Zitat von: exot am 26 Oktober 2015, 15:26:06
Ich glaube hier liegt das Problem
Testumgebung: GPIO18/IN/0;  24/OUT/1;  25/OUT/0
Arbeitsumgebg: GPIO18/IN/0;  24/IN/0;     25/IN/0
Dann kann natürlich nichts angezeigt werden.
Ich verstehe nur nicht,warum in der Testumgebung die GPIO's automatisch zugewiesen wurden und in der Arbeitsumgebung nicht.
Tja, da kann ich Dir nicht wirklich weiterhelfen. Ich habe mit GPIOs noch nie was gemacht. Bei mir hängt der RasPi nur über Ethernet und RS485 an der Außenwelt.
Gruß,
   Thorsten
FUIP