עברתי לopenhab וצריך עזרה

בית חכם, עוזרות חכמות, חשמל חכם, מערכות שליטה ובקרה, Amazon Echo, Alexa, Google home, Control4, RTI, מנעולים חכמים ועוד.
razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013

שליחה

התקנתי openhab ואני צריך עזרה במימוש switcher v3 בopenhab
ראיתי שרשורים אבל לא צלחתי להבין מה זה exec ואיך משתמש בזה

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013

שליחה

אין פה אף אחד שיש לו switcher עם openhab?

jagheadg
חבר ותיק
חבר ותיק
תגובות: 1184
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים

שליחה

@razserv2010
·
יש אבל רק קריאה של המצב.
עדיין לא מימשתי שליטה.

switcher.items

קוד: בחירת הכל

String Switcher_Command_Output "[%s]" { channel="exec:command:SwitcherAll:output" }

String SwitcherStatus "Switcher [%s]"
Number SwitcherCurrent "Switcher Current [%.1f Amp]"
Number SwitcherPowerConsumption "Switcher Power [%.0f W]"
Switch SwitcherOnline "Switcher [MAP(ping.map):%s]" { channel="network:pingdevice:Switcher:online" }
DateTime Switcher_LastUpdate "Last Update [%1$td.%1$tm.%1$tY, %1$tH:%1$tM]" {channel="exec:command:SwitcherAll:output" [profile="timestamp-change"] }
נערך לאחרונה על ידי jagheadg ב 16/07/2020 19:15, נערך פעם 1 בסך הכל.

jagheadg
חבר ותיק
חבר ותיק
תגובות: 1184
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים

שליחה

sitemap

קוד: בחירת הכל

Text item=SwitcherStatus label="דוד מים חמים" icon="switcher" {
Frame label="Switcher" {
Text item=SwitcherStatus icon="switcher"
Default item=Switcher_LastUpdate icon="time-on"    
Text item=SwitcherCurrent label="Current [%s A]" icon="ampere"
Text item=SwitcherPowerConsumption label="Power [%s W]" icon="wattpower"
Chart item=SwitcherCurrent label="Current" period=D refresh=600000 legend=true service="influxdb"
}
נערך לאחרונה על ידי jagheadg ב 16/07/2020 19:16, נערך פעם 1 בסך הכל.

jagheadg
חבר ותיק
חבר ותיק
תגובות: 1184
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים

שליחה

switcher.rules
[left]

קוד: בחירת הכל

rule "Switcher Output"
when
   Item Switcher_Command_Output changed 
then 
// --- Sending Login Packet to Switcher...
// --- Received SessionID: 00000000
// --- Getting Switcher state...
// --- Device Name: Switcher
// --- Device is ON
// --- Electric Current is: 11.5(A)
// --- Power consumption is: 2535(W)
// --- Device is configured to auto shutdown in: 2:00 hour(s)
// --- Auto shutdown device in: 1:59:25
// --- Done!

    val SwitcherVal =   Switcher_Command_Output.state.toString.split('--- ').get(5).trim
    val SwitcherCurrentVal =    Switcher_Command_Output.state.toString.split('--- ').get(6).trim
    val SwitcherPowerConsumptionVal =   Switcher_Command_Output.state.toString.split('--- ').get(7).trim

    //logInfo("Switcher", "---"+ Switcher +"---")   
    var SwitcherStatusVar = transform("REGEX", "Device is (.*)", SwitcherVal.toString)
    SwitcherStatus.postUpdate(SwitcherStatusVar)
    //logInfo("SwitcherStatusVar", "---"+ SwitcherStatusVar +"---")

    //logInfo("SwitcherCurrent","---"+  SwitcherCurrent+"---")
    var SwitcherCurrentVar = transform("REGEX","Electric Current is: (.*)A", SwitcherCurrentVal.toString)
    SwitcherCurrent.postUpdate(SwitcherCurrentVar)
    //logInfo("SwitcherCurrentVar","---"+  SwitcherCurrentVar+"---")


    //logInfo("SwitcherPowerConsumption", "---"+ SwitcherPowerConsumptionVal+  "---")   
    var SwitcherPowerConsumptionVar = transform("REGEX", "Power consumption is: (.*)W", SwitcherPowerConsumptionVal.toString)
    SwitcherPowerConsumption.postUpdate(SwitcherPowerConsumptionVar)
    //logInfo("SwitcherPowerConsumptionVar    ", "---"+ SwitcherPowerConsumptionVar   +"---")

    //Switcher_LastUpdate.postUpdate(new DateTimeType()) // ### Replaced with item profile ###
end
[/left]

jagheadg
חבר ותיק
חבר ותיק
תגובות: 1184
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים

שליחה

בתיקיית ה scripts
שים קובץ switcher.py המקורי שעבר שינוי קל כדי שיהיה אפשר להוציא פרמטרים בקלות. (החלפה ב שלושה מינוסים ---)

jagheadg
חבר ותיק
חבר ותיק
תגובות: 1184
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים

שליחה

תגדיר בתיקיית ה things את ה"דבר" שמריץ את הסקריפט:

קוד: בחירת הכל

Thing exec:command:SwitcherAll [ command="/usr/bin/python /etc/openhab2/scripts/switcher.py 2" , interval=60 , timeout=10 , autorun=false]

jagheadg
חבר ותיק
חבר ותיק
תגובות: 1184
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים

שליחה

כדאי שגם תסתכל פה:

https://community.openhab.org/t/transfo ... t/84319/11

חייב גם להקצות IP קבוע לסוויטצ'ר דרך הראוטר.
ככה הוא לא יתנתק ויקבל כל פעם כתובת חדשה אלא קבועה והסקיפט יוכל "לדבר" איתו כל הזמן.

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013

שליחה

@jagheadg
·

תודה רבה!
ומה זה exec?

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013

שליחה

@jagheadg
·

עשיתי כל מה שרשמת לי..
מה הבעיה כאן?

[url=//[imgur-album]kFTmE8V[/imgur-album]][/url]

jagheadg
חבר ותיק
חבר ותיק
תגובות: 1184
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים

שליחה

@razserv2010

מצטער מראש אבל אי אפשר לעזור ככה על רגל אחת כאן. זה יהיה מאוד מבלבל ומתסכל לשני הצדדים.
יש מסלול למידה של הנושא כמו בכל דבר.
לכן אני מציע שתקרא קצת קודם על הדרך לכתוב קוד תקין והאפשרויות השונות במערכת. זה דורש לימוד.
המקור הטוב ביותר הוא האתר הרשמי עם דוגמאות בסיסיות שמהן אפשר להתחיל לקבל ידע בסיסי:

https://www.openhab.org/docs/configurat ... emaps.html

https://www.openhab.org/addons/bindings/exec/

כן, יש צורך בקצת סבלנות והרבה ניסוי וטעייה, זה לא עובד מייד.

ולעניין הדוגמה שרשמתי למעלה, זה קטע קוד חתוך מ sitemap גדול וכללי מהמערכת. לכן יש שגיאה כי הפורמט לא נכון ושלם.

חזור אל “בית חכם ובקרה”