Neueste Beiträge

Seiten: 1 ... 8 9 [10]
91
Perl Ecke / Beendet Subroutinen mit return!
« Letzter Beitrag von RichardCZ am Gestern um 20:36:51 »
Ja, es ist soweit, ich schreibe mein erstes Modul. Natürlich nehme ich kritisch jeden Punkt in
https://wiki.fhem.de/wiki/DevelopmentModuleIntro
unter die Lupe.

So dachte mir ja heute, man könnte XXX_Initialize eleganter machen. Bislang (nur Beispiel):

sub HMCCU_Initialize ($)
{
my ($hash) = @_;

$hash->{DefFn} = "HMCCU_Define";
$hash->{UndefFn} = "HMCCU_Undef";
$hash->{SetFn} = "HMCCU_Set";
...
}

künftig - so dachte ich:

sub XXX_Initialize {

    return {
        DefFn   => 'XXX_Define', # besser: coderef
        UndefFn => 'XXX_UNdef',
...
    };
}

Ja denkste!

CommandReload in fhem.pl habe ich um ein $init_hr erweitert, den Initialize-Aufruf erweitert zu

    $init_hr = &{ "${fnname}_Initialize" }(\%hash);
und schliesslich das Modul verankern als

   $modules{$m} = ref $init_hr eq 'HASH' ? $init_hr : \%hash;
Das sollte - dachte ich - schön rückwärtskompatibel sein mit dem alten Weg (\%hash) und mit dem neuen weg (argumentlos, direkt anonymes hash zurück.
Denn niemand liefert eine Hashref zurück - ist doch logisch. Dachte ich Naivling, ich sende Rudi einen Patch.
Als erstes ist mir natürlich Hobo um die Ohren geflogen.  ;)
Ich also Debugmeldungen rein und siehe da:

Hallo: $VAR1 = {
          'ClientFilter' => 'telnet',
          'Fn' => 'CommandTelnetInform',
          'Hlp' => '{on|onWithState|off|log|raw|timer|status},echo all events to this client'
        };


Ja klar! Musste ja sein.

98_telnet.pm beendet Initialize mit


  $cmds{inform} = { Fn=>"CommandTelnetInform",
          ClientFilter => "telnet",
          Hlp=>"{on|onWithState|off|log|raw|timer|status},".
                        "echo all events to this client" };
} # <--- end sub

Verfluchte "$&%""§ !!!

Klar beendet sich dann die Sub mit dem Wert des letzten Statements. Also besagter hashref. (Wert der Zuweisung)

Es kann doch nicht so schwer sein ans Ende der sub ein return; zu pflanzen - oder?
PBP hat's ja schon immer gesagt...

92
Homematic / Antw:Licht aus, an und dann dimmen
« Letzter Beitrag von frank am Gestern um 20:35:33 »
tipp:

im webui kannst du auch ein template en block mehreren device/peer kombinationen zuweisen, parameter setzen oder zuweisungen aufheben.

dazu änderst du in der templateansicht oben rechts das dropdown auf "global usage".
jetzt erscheint eine tabelle, die die "globale" nutzung des templates zeigt.

wenn du die tabelle nach deimen wünschen eingestellt hast, werden alle änderungen durch klick auf use ausgeführt.

so kannst du deine 3 dimmer auf einen streich konfigurieren.
93
DOIF / Antw:DOIF - Zeitspannen über Mitternacht
« Letzter Beitrag von SirBen am Gestern um 20:21:01 »
Lang lang ist's her, aber ich habe mich noch mal mit dem Thema beschäftigt.
Falls es jemand gebrauchen kann, hier das funktionierende DOIF:
([23:00] or [{sunrise("REAL")}])
(set Zentrale Dachueberstand off, {Log 1,"Licht aus"})
DOELSEIF
(((([05:15] and !$we) or ([07:00] and $we)) and ![{sunrise("REAL")}-{sunset("REAL")}]) or [{sunset("REAL",0,"","22:59")}])
(set Zentrale Dachueberstand on, {Log 1,"Licht an"})
Falls jemand den Fehler im ursprünglichen DOIF finden sollte, wäre ich daran auch weiterhin interessiert.

Danke und Gruß
Ben
94
Bastelecke / Bettsensor mit Waage
« Letzter Beitrag von balli1187 am Gestern um 20:19:49 »
..eine Wägezelle.
Aber eine andere als hier bisher diskutiert oder? Hast du das so bei dir im Einsatz?
Geht es bei dir auch ums Gewicht oder warum kein einfacher Schalter statt der wägezelle?

[mention]TomLee [/mention]
Klingt eigentlich ganz gut, nur hab ich leider bisher noch nichts mit Zigbee im Einsatz und im scglafzimmer generell noch nichts smartes. Müsste also noch eine extra gateway her. Da überlege ich noch ob es sich für dieses eine Anwendung lohnt.

Gesendet von iPhone mit Tapatalk
95
Perl Ecke / Antw:Wie use Meta aber nur wenn Meta auch vorhanden ist ?
« Letzter Beitrag von RichardCZ am Gestern um 20:18:54 »
Da Meta ja vermutlich nicht zur Laufzeit dazukommt, fällt mir spontan ein

eval { use Meta; }
oder

BEGIN {
 require $modul if (-e $modul_path);
}

genaueres: https://stackoverflow.com/questions/3945583/how-can-i-conditionally-use-a-module-in-perl
96
Bastelecke / Antw:Der-Smarte-Wlansteckdose-Tasmota-Und-Co.-Thread
« Letzter Beitrag von jnewton957 am Gestern um 20:18:37 »
Hi,
Ich mache immer vorher ein
sudo ifconfig wlan0 downoder wie auch immer der tolle Name des WLAN Interfaces unter ifconfig ist ;-)
Und das flash script auch per
sudo ./start_flash.shstarten.
Aber der Tipp mit einer neuen und nicht produktiven SD hilft am besten ;-)
Gruß Arnd


Signalduino (Nano, ESP, ...), CUL (Busware, Nano, Maple, ...), Homematic (HM-MOD-UART-RPI, ESP, Maple, ...), LaCrosseGateway (LGW, ESP, ...), 1-wire, ESPEasy, Bravia, Yamaha, ...

ich habe mal eine alte RASPI neu konfiguriert und es auch zumindest einige Schritte weiter geschafft.

Am Ende des ./start_flash.sh bekomme ich allerdings ein

Device did not appear with the intermediate firmware
Das dürfte dann wohl heissen, dass es mit den "neuen" Teckin SP22 nicht geht. Hebe auch verschiedene Foren danach untersucht und auch schon x Möglichkeiten ausprobiert.

Schade
97
Perl Ecke / Antw:Wie use Meta aber nur wenn Meta auch vorhanden ist ?
« Letzter Beitrag von mahowi am Gestern um 20:18:25 »
Laut https://www.perlmonks.org/?node_id=691741 sollte das klappen:
eval "use FHEM::Meta";
if ( $@ ) {
     $modMetaAbsent = 1;
}
98
Edit: Kann es daran liegen, dass der Status länger auf disconnected steht, da das Ding so selten Daten sendet?
Kann sein, bei mir wird ca. alle 70 Minuten ein Update gesendet.
99
defmod Rollladen_01_Ki ZWave dacfd218 4
attr Rollladen_01_Ki userattr ASC_Adv:on,off ASC_Antifreeze:off,soft,hard,am,pm ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BlockingTime_afterManual ASC_BlockingTime_beforDayOpen ASC_BlockingTime_beforNightClose ASC_BrightnessSensor ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Down:time,astro,brightness,roommate ASC_DriveUpMaxDuration ASC_Drive_Delay ASC_Drive_DelayStart ASC_ExternalTrigger ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked,protection ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_PrivacyDownValue_beforeNightClose ASC_PrivacyDown_Pos ASC_PrivacyUpValue_beforeDayOpen ASC_PrivacyUp_Pos ASC_RainProtection:on,off ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_AbsentDelay ASC_Self_Defense_Mode:absent,gone,off ASC_Shading_InOutAzimuth ASC_Shading_MinMax_Elevation ASC_Shading_Min_OutsideTemperature ASC_Shading_Mode:absent,always,off,home ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Shading_StateChange_SunnyCloudy ASC_Shading_WaitingPeriod ASC_Shutter_IdleDetection ASC_ShuttersPlace:window,terrace ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_TempSensor ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness,roommate ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindParameters ASC_WindProtection:on,off ASC_WindowRec ASC_WindowRec_PosAfterDayClosed:open,lastManual ASC_WindowRec_subType:twostate,threestate
attr Rollladen_01_Ki ASC 2
attr Rollladen_01_Ki ASC_AutoAstroModeEvening HORIZON
attr Rollladen_01_Ki ASC_AutoAstroModeEveningHorizon -2
attr Rollladen_01_Ki ASC_AutoAstroModeMorning HORIZON
attr Rollladen_01_Ki ASC_AutoAstroModeMorningHorizon -4
attr Rollladen_01_Ki ASC_BlockingTime_afterManual 240
attr Rollladen_01_Ki ASC_Closed_Pos 0
attr Rollladen_01_Ki ASC_Drive_Delay 0
attr Rollladen_01_Ki ASC_Drive_DelayStart 80
attr Rollladen_01_Ki ASC_Open_Pos 99
attr Rollladen_01_Ki ASC_Pos_Reading position
attr Rollladen_01_Ki ASC_PrivacyDownValue_beforeNightClose 120
attr Rollladen_01_Ki ASC_PrivacyDown_Pos 72
attr Rollladen_01_Ki ASC_Time_Down_Early 16:30
attr Rollladen_01_Ki ASC_Time_Down_Late 21:30
attr Rollladen_01_Ki ASC_Time_Up_Early 06:40
attr Rollladen_01_Ki ASC_Time_Up_Late 09:00
attr Rollladen_01_Ki ASC_Time_Up_WE_Holiday 08:30
attr Rollladen_01_Ki IODev ZWDongle_0
attr Rollladen_01_Ki classes MULTI_CHANNEL_ASSOCIATION MANUFACTURER_SPECIFIC VERSION CONFIGURATION ASSOCIATION POWERLEVEL METER SWITCH_MULTILEVEL SENSOR_MULTILEVEL SWITCH_BINARY MANUFACTURER_PROPRIETARY PROTECTION MARK METER SENSOR_MULTILEVEL MANUFACTURER_PROPRIETARY SCENE_ACTIVATION SWITCH_MULTILEVEL SWITCH_BINARY
attr Rollladen_01_Ki devStateIcon (9[7-9])|(9[7-9]):fts_window_2w (9[0-6]|8[7-9])|(9[0-6]|8[7-9]):fts_shutter_10@red (8[0-6])|(8[0-6]):fts_shutter_20@red (7[3-9])|(7[3-9]):fts_shutter_30@red (6[5-9]|7[0-2])|(6[5-9]|7[0-2]):fts_shutter_40@red (5[6-9]|6[0-4])|(5[6-9]|6[0-4]):fts_shutter_50@red (4[5-9]|5[0-5])|(4[5-9]|5[0-5]):fts_shutter_60@red (3[5-9]|4[0-4])|(3[5-9]|4[0-4]):fts_shutter_70@red (2[1-9]|3[0-4])|(2[1-9]|3[0-4]):fts_shutter_80@red ([6-9]|1[0-9]|20)|([6-9]|1[0-9]|20):fts_shutter_90@orange ([0-5])|([0-5]):fts_shutter_100
attr Rollladen_01_Ki room ASC
attr Rollladen_01_Ki vclasses ASSOCIATION:2 CONFIGURATION:1 MANUFACTURER_PROPRIETARY:1 MANUFACTURER_SPECIFIC:1 METER:2 MULTI_CHANNEL_ASSOCIATION:2 POWERLEVEL:1 PROTECTION:2 SCENE_ACTIVATION:1 SENSOR_MULTILEVEL:2 SWITCH_BINARY:1 SWITCH_MULTILEVEL:3 VERSION:1

setstate Rollladen_01_Ki dim 92
setstate Rollladen_01_Ki 2020-04-04 15:45:29 .ASC_AttrUpdateChanges_v0.8.24 1
setstate Rollladen_01_Ki 2020-04-04 13:45:31 ASC_Enable on
setstate Rollladen_01_Ki 2020-04-04 20:06:00 ASC_Time_DriveDown  5.04.2020 - 20:02
setstate Rollladen_01_Ki 2020-04-04 20:06:00 ASC_Time_DriveUp  5.04.2020 - 06:40
setstate Rollladen_01_Ki 2020-04-04 20:06:00 ASC_Time_PrivacyDriveDown  5.04.2020 - 20:00
setstate Rollladen_01_Ki 2020-04-04 13:40:56 assocGroup_1 Max 16 Nodes ZWDongle_0
setstate Rollladen_01_Ki 2020-04-04 13:40:56 assocGroup_2 Max 16 Nodes
setstate Rollladen_01_Ki 2020-04-04 13:40:56 assocGroup_3 Max 1 Nodes ZWDongle_0
setstate Rollladen_01_Ki 2020-04-04 13:40:56 assocGroups 3
setstate Rollladen_01_Ki 2020-04-04 20:05:57 associatedWith ASControl
setstate Rollladen_01_Ki 2020-04-04 13:40:43 configEnergyReports 10
setstate Rollladen_01_Ki 2020-04-04 13:40:43 configInRollerBlindModeOrVenetianBlind17 10
setstate Rollladen_01_Ki 2020-04-04 13:40:43 configInVenetianBlindModeTheParameter12 150
setstate Rollladen_01_Ki 2020-04-04 13:40:48 configManagingLamellasInResponseTo35 SetLamellasToTheirExtreme1
setstate Rollladen_01_Ki 2020-04-04 13:40:48 configMotorOperationDetection 10
setstate Rollladen_01_Ki 2020-04-04 13:40:48 configMotorOperationTime 240
setstate Rollladen_01_Ki 2020-04-04 13:40:48 configPeriodicPowerOrEnergyReports 3600
setstate Rollladen_01_Ki 2020-04-04 13:40:48 configPowerReports 10
setstate Rollladen_01_Ki 2020-04-04 13:40:53 configReportsType BlindPositionReportsSentToThe1
setstate Rollladen_01_Ki 2020-04-04 13:40:53 configResponseToFloodingAlarm NoReaction
setstate Rollladen_01_Ki 2020-04-04 13:40:53 configResponseToGeneralAlarm CloseBlind
setstate Rollladen_01_Ki 2020-04-04 13:40:53 configResponseToSmokeCOOrCO2Alarm OpenBlind
setstate Rollladen_01_Ki 2020-04-04 13:40:54 configResponseToTemperatureAlarm OpenBlind
setstate Rollladen_01_Ki 2020-04-04 13:40:54 configRollerShutterOperatingModes 1RollerBlindModeWithPositioning
setstate Rollladen_01_Ki 2020-04-04 13:40:54 configScenesAssociationsActivation AssociationsActivation
setstate Rollladen_01_Ki 2020-04-04 13:40:54 configSelfMeasurement SelfMeasurementInactive
setstate Rollladen_01_Ki 2020-04-04 13:40:54 configSetLamellasBackToPrevious13 1LamellasReturnToPreviouslySet1
setstate Rollladen_01_Ki 2020-04-04 13:40:54 configSwitchType ToggleSwitches
setstate Rollladen_01_Ki 2020-04-04 18:41:08 energy 1.12 kWh
setstate Rollladen_01_Ki 2020-04-04 13:41:02 mcaGroups 2
setstate Rollladen_01_Ki 2020-04-04 13:41:02 mca_1 Max 7 Nodes ZWDongle_0
setstate Rollladen_01_Ki 2020-04-04 13:41:02 mca_2 Max 7
setstate Rollladen_01_Ki 2020-04-04 13:40:35 model FIBARO System FGRM222 Roller Shutter Controller 2
setstate Rollladen_01_Ki 2020-04-04 13:40:35 modelConfig fibaro/fgrm222.xml
setstate Rollladen_01_Ki 2020-04-04 13:40:35 modelId 010f-0302-1000
setstate Rollladen_01_Ki 2020-04-04 13:41:19 neighborList ZWDongle_0 UNKNOWN_2 UNKNOWN_3 UNKNOWN_5 UNKNOWN_6 UNKNOWN_7 UNKNOWN_8 UNKNOWN_9 UNKNOWN_11
setstate Rollladen_01_Ki 2020-04-04 14:00:51 position 99
setstate Rollladen_01_Ki 2020-04-04 20:00:50 power 0.0 W
setstate Rollladen_01_Ki 2020-04-04 14:00:48 state dim 92
setstate Rollladen_01_Ki 2020-04-04 14:00:48 timeToAck 0.044
setstate Rollladen_01_Ki 2020-04-04 14:00:48 transmit OK
setstate Rollladen_01_Ki 2020-04-04 13:41:35 version Lib 3 Prot 3.52 App 25.25

100
Da wars bei mir fast noch schöner. Ist aber wieder tiptop geworden.

Schneid das Styropor einfach vorsichtig mit einem Cuttermesser auf. Hinterher einfach wieder reindrücken, die Öffnung z.B. mit einem verzinkten Stahlblech und Panzertape verschließen.
Seiten: 1 ... 8 9 [10]