Closed haforme closed 1 month ago
Question is about the "lastevent" field. What are the text strings that you have defined such as "System/Ac Fail" and "System/Ac Restore".
Apart from Startup/Startup that I set it to on startup then...
The string before the / is (depending on the language you pick and whether you have a PowerMax or a PowerMaster):
pmLogPowerMaxUser_t = {
"EN" : [ "System", "Zone 01", "Zone 02", "Zone 03", "Zone 04", "Zone 05", "Zone 06", "Zone 07", "Zone 08",
"Zone 09", "Zone 10", "Zone 11", "Zone 12", "Zone 13", "Zone 14", "Zone 15", "Zone 16", "Zone 17", "Zone 18",
"Zone 19", "Zone 20", "Zone 21", "Zone 22", "Zone 23", "Zone 24", "Zone 25", "Zone 26", "Zone 27", "Zone 28",
"Zone 29", "Zone 30", "Fob 01", "Fob 02", "Fob 03", "Fob 04", "Fob 05", "Fob 06", "Fob 07", "Fob 08",
"User 01", "User 02", "User 03", "User 04", "User 05", "User 06", "User 07", "User 08", "Pad 01", "Pad 02",
"Pad 03", "Pad 04", "Pad 05", "Pad 06", "Pad 07", "Pad 08", "Sir 01", "Sir 02", "2Pad 01", "2Pad 02",
"2Pad 03", "2Pad 04", "X10 01", "X10 02", "X10 03", "X10 04", "X10 05", "X10 06", "X10 07", "X10 08",
"X10 09", "X10 10", "X10 11", "X10 12", "X10 13", "X10 14", "X10 15", "PGM ", "GSM ", "P-LINK ",
"PTag 01", "PTag 02", "PTag 03", "PTag 04", "PTag 05", "PTag 06", "PTag 07", "PTag 08", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown"],
"NL" : [ "Systeem", "Zone 01", "Zone 02", "Zone 03", "Zone 04", "Zone 05", "Zone 06", "Zone 07", "Zone 08",
"Zone 09", "Zone 10", "Zone 11", "Zone 12", "Zone 13", "Zone 14", "Zone 15", "Zone 16", "Zone 17", "Zone 18",
"Zone 19", "Zone 20", "Zone 21", "Zone 22", "Zone 23", "Zone 24", "Zone 25", "Zone 26", "Zone 27", "Zone 28",
"Zone 29", "Zone 30", "Fob 01", "Fob 02", "Fob 03", "Fob 04", "Fob 05", "Fob 06", "Fob 07", "Fob 08",
"Gebruiker 01", "Gebruiker 02", "Gebruiker 03", "Gebruiker 04", "Gebruiker 05", "Gebruiker 06", "Gebruiker 07",
"Gebruiker 08", "Pad 01", "Pad 02",
"Pad 03", "Pad 04", "Pad 05", "Pad 06", "Pad 07", "Pad 08", "Sir 01", "Sir 02", "2Pad 01", "2Pad 02",
"2Pad 03", "2Pad 04", "X10 01", "X10 02", "X10 03", "X10 04", "X10 05", "X10 06", "X10 07", "X10 08",
"X10 09", "X10 10", "X10 11", "X10 12", "X10 13", "X10 14", "X10 15", "PGM ", "GSM ", "P-LINK ",
"PTag 01", "PTag 02", "PTag 03", "PTag 04", "PTag 05", "PTag 06", "PTag 07", "PTag 08", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown"],
"FR" : [ "Système", "Zone 01", "Zone 02", "Zone 03", "Zone 04", "Zone 05", "Zone 06", "Zone 07", "Zone 08",
"Zone 09", "Zone 10", "Zone 11", "Zone 12", "Zone 13", "Zone 14", "Zone 15", "Zone 16", "Zone 17", "Zone 18",
"Zone 19", "Zone 20", "Zone 21", "Zone 22", "Zone 23", "Zone 24", "Zone 25", "Zone 26", "Zone 27", "Zone 28",
"Zone 29", "Zone 30", "Memclé 01", "Memclé 02", "Memclé 03", "Memclé 04", "Memclé 05", "Memclé 06", "Memclé 07", "Memclé 08",
"User 01", "User 02", "User 03", "User 04", "User 05", "User 06", "User 07", "User 08", "Pad 01", "Pad 02",
"Pad 03", "Pad 04", "Pad 05", "Pad 06", "Pad 07", "Pad 08", "Sir 01", "Sir 02", "2Pad 01", "2Pad 02",
"2Pad 03", "2Pad 04", "X10 01", "X10 02", "X10 03", "X10 04", "X10 05", "X10 06", "X10 07", "X10 08",
"X10 09", "X10 10", "X10 11", "X10 12", "X10 13", "X10 14", "X10 15", "PGM ", "GSM ", "P-LINK ",
"PTag 01", "PTag 02", "PTag 03", "PTag 04", "PTag 05", "PTag 06", "PTag 07", "PTag 08", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown"]
}
pmLogPowerMasterUser_t = {
"EN" : [ "System", "Zone 01", "Zone 02", "Zone 03", "Zone 04", "Zone 05", "Zone 06", "Zone 07", "Zone 08",
"Zone 09", "Zone 10", "Zone 11", "Zone 12", "Zone 13", "Zone 14", "Zone 15", "Zone 16", "Zone 17", "Zone 18",
"Zone 19", "Zone 20", "Zone 21", "Zone 22", "Zone 23", "Zone 24", "Zone 25", "Zone 26", "Zone 27", "Zone 28",
"Zone 29", "Zone 30", "Zone 31", "Zone 32", "Zone 33", "Zone 34", "Zone 35", "Zone 36", "Zone 37", "Zone 38",
"Zone 39", "Zone 40", "Zone 41", "Zone 42", "Zone 43", "Zone 44", "Zone 45", "Zone 46", "Zone 47", "Zone 48",
"Zone 49", "Zone 50", "Zone 51", "Zone 52", "Zone 53", "Zone 54", "Zone 55", "Zone 56", "Zone 57", "Zone 58",
"Zone 59", "Zone 60", "Zone 61", "Zone 62", "Zone 63", "Zone 64",
"Fob 01", "Fob 02", "Fob 03", "Fob 04", "Fob 05", "Fob 06", "Fob 07", "Fob 08", "Fob 09", "Fob 10",
"Fob 11", "Fob 12", "Fob 13", "Fob 14", "Fob 15", "Fob 16", "Fob 17", "Fob 18", "Fob 19", "Fob 20",
"Fob 21", "Fob 22", "Fob 23", "Fob 24", "Fob 25", "Fob 26", "Fob 27", "Fob 28", "Fob 29", "Fob 30",
"Fob 31", "Fob 32",
"User 01", "User 02", "User 03", "User 04", "User 05", "User 06", "User 07", "User 08", "User 09", "User 10",
"User 11", "User 12", "User 13", "User 14", "User 15", "User 16", "User 17", "User 18", "User 19", "User 20",
"User 21", "User 22", "User 23", "User 24", "User 25", "User 26", "User 27", "User 28", "User 29", "User 30",
"User 31", "User 32", "User 33", "User 34", "User 35", "User 36", "User 37", "User 38", "User 39", "User 40",
"User 41", "User 42", "User 43", "User 44", "User 45", "User 46", "User 47", "User 48",
"Pad 01", "Pad 02", "Pad 03", "Pad 04", "Pad 05", "Pad 06", "Pad 07", "Pad 08", "Pad 09", "Pad 10",
"Pad 11", "Pad 12", "Pad 13", "Pad 14", "Pad 15", "Pad 16", "Pad 17", "Pad 18", "Pad 19", "Pad 20",
"Pad 21", "Pad 22", "Pad 23", "Pad 24", "Pad 25", "Pad 26", "Pad 27", "Pad 28", "Pad 29", "Pad 30",
"Pad 31", "Pad 32",
"Sir 01", "Sir 02", "Sir 03", "Sir 04", "Sir 05", "Sir 06", "Sir 07", "Sir 08",
"2Pad 01", "2Pad 02", "2Pad 03", "2Pad 04",
"X10 01", "X10 02", "X10 03", "X10 04", "X10 05", "X10 06", "X10 07", "X10 08",
"X10 09", "X10 10", "X10 11", "X10 12", "X10 13", "X10 14", "X10 15", "PGM ", "P-LINK ",
"PTag 01", "PTag 02", "PTag 03", "PTag 04", "PTag 05", "PTag 06", "PTag 07", "PTag 08", "PTag 09", "PTag 10",
"PTag 11", "PTag 12", "PTag 13", "PTag 14", "PTag 15", "PTag 16", "PTag 17", "PTag 18", "PTag 19", "PTag 20",
"PTag 21", "PTag 22", "PTag 23", "PTag 24", "PTag 25", "PTag 26", "PTag 27", "PTag 28", "PTag 29", "PTag 30",
"PTag 31", "PTag 32",
"Rptr 01", "Rptr 02", "Rptr 03", "Rptr 04", "Rptr 05", "Rptr 06", "Rptr 07", "Rptr 08",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown"],
"NL" : [ "Systeem", "Zone 01", "Zone 02", "Zone 03", "Zone 04", "Zone 05", "Zone 06", "Zone 07", "Zone 08",
"Zone 09", "Zone 10", "Zone 11", "Zone 12", "Zone 13", "Zone 14", "Zone 15", "Zone 16", "Zone 17", "Zone 18",
"Zone 19", "Zone 20", "Zone 21", "Zone 22", "Zone 23", "Zone 24", "Zone 25", "Zone 26", "Zone 27", "Zone 28",
"Zone 29", "Zone 30", "Zone 31", "Zone 32", "Zone 33", "Zone 34", "Zone 35", "Zone 36", "Zone 37", "Zone 38",
"Zone 39", "Zone 40", "Zone 41", "Zone 42", "Zone 43", "Zone 44", "Zone 45", "Zone 46", "Zone 47", "Zone 48",
"Zone 49", "Zone 50", "Zone 51", "Zone 52", "Zone 53", "Zone 54", "Zone 55", "Zone 56", "Zone 57", "Zone 58",
"Zone 59", "Zone 60", "Zone 61", "Zone 62", "Zone 63", "Zone 64",
"Fob 01", "Fob 02", "Fob 03", "Fob 04", "Fob 05", "Fob 06", "Fob 07", "Fob 08", "Fob 09", "Fob 10",
"Fob 11", "Fob 12", "Fob 13", "Fob 14", "Fob 15", "Fob 16", "Fob 17", "Fob 18", "Fob 19", "Fob 20",
"Fob 21", "Fob 22", "Fob 23", "Fob 24", "Fob 25", "Fob 26", "Fob 27", "Fob 28", "Fob 29", "Fob 30",
"Fob 31", "Fob 32",
"Gebruiker 01", "Gebruiker 02", "Gebruiker 03", "Gebruiker 04", "Gebruiker 05", "Gebruiker 06", "Gebruiker 07", "Gebruiker 08", "Gebruiker 09", "Gebruiker 10",
"Gebruiker 11", "Gebruiker 12", "Gebruiker 13", "Gebruiker 14", "Gebruiker 15", "Gebruiker 16", "Gebruiker 17", "Gebruiker 18", "Gebruiker 19", "Gebruiker 20",
"Gebruiker 21", "Gebruiker 22", "Gebruiker 23", "Gebruiker 24", "Gebruiker 25", "Gebruiker 26", "Gebruiker 27", "Gebruiker 28", "Gebruiker 29", "Gebruiker 30",
"Gebruiker 31", "Gebruiker 32", "Gebruiker 33", "Gebruiker 34", "Gebruiker 35", "Gebruiker 36", "Gebruiker 37", "Gebruiker 38", "Gebruiker 39", "Gebruiker 40",
"Gebruiker 41", "Gebruiker 42", "Gebruiker 43", "Gebruiker 44", "Gebruiker 45", "Gebruiker 46", "Gebruiker 47", "Gebruiker 48",
"Pad 01", "Pad 02", "Pad 03", "Pad 04", "Pad 05", "Pad 06", "Pad 07", "Pad 08", "Pad 09", "Pad 10",
"Pad 11", "Pad 12", "Pad 13", "Pad 14", "Pad 15", "Pad 16", "Pad 17", "Pad 18", "Pad 19", "Pad 20",
"Pad 21", "Pad 22", "Pad 23", "Pad 24", "Pad 25", "Pad 26", "Pad 27", "Pad 28", "Pad 29", "Pad 30",
"Pad 31", "Pad 32",
"Sir 01", "Sir 02", "Sir 03", "Sir 04", "Sir 05", "Sir 06", "Sir 07", "Sir 08",
"2Pad 01", "2Pad 02", "2Pad 03", "2Pad 04",
"X10 01", "X10 02", "X10 03", "X10 04", "X10 05", "X10 06", "X10 07", "X10 08",
"X10 09", "X10 10", "X10 11", "X10 12", "X10 13", "X10 14", "X10 15", "PGM ", "P-LINK ",
"PTag 01", "PTag 02", "PTag 03", "PTag 04", "PTag 05", "PTag 06", "PTag 07", "PTag 08", "PTag 09", "PTag 10",
"PTag 11", "PTag 12", "PTag 13", "PTag 14", "PTag 15", "PTag 16", "PTag 17", "PTag 18", "PTag 19", "PTag 20",
"PTag 21", "PTag 22", "PTag 23", "PTag 24", "PTag 25", "PTag 26", "PTag 27", "PTag 28", "PTag 29", "PTag 30",
"PTag 31", "PTag 32",
"Rptr 01", "Rptr 02", "Rptr 03", "Rptr 04", "Rptr 05", "Rptr 06", "Rptr 07", "Rptr 08"],
"FR" : [ "Système", "Zone 01", "Zone 02", "Zone 03", "Zone 04", "Zone 05", "Zone 06", "Zone 07", "Zone 08",
"Zone 09", "Zone 10", "Zone 11", "Zone 12", "Zone 13", "Zone 14", "Zone 15", "Zone 16", "Zone 17", "Zone 18",
"Zone 19", "Zone 20", "Zone 21", "Zone 22", "Zone 23", "Zone 24", "Zone 25", "Zone 26", "Zone 27", "Zone 28",
"Zone 29", "Zone 30", "Zone 31", "Zone 32", "Zone 33", "Zone 34", "Zone 35", "Zone 36", "Zone 37", "Zone 38",
"Zone 39", "Zone 40", "Zone 41", "Zone 42", "Zone 43", "Zone 44", "Zone 45", "Zone 46", "Zone 47", "Zone 48",
"Zone 49", "Zone 50", "Zone 51", "Zone 52", "Zone 53", "Zone 54", "Zone 55", "Zone 56", "Zone 57", "Zone 58",
"Zone 59", "Zone 60", "Zone 61", "Zone 62", "Zone 63", "Zone 64",
"Memclé 01", "Memclé 02", "Memclé 03", "Memclé 04", "Memclé 05", "Memclé 06", "Memclé 07", "Memclé 08", "Memclé 09", "Memclé 10",
"Memclé 11", "Memclé 12", "Memclé 13", "Memclé 14", "Memclé 15", "Memclé 16", "Memclé 17", "Memclé 18", "Memclé 19", "Memclé 20",
"Memclé 21", "Memclé 22", "Memclé 23", "Memclé 24", "Memclé 25", "Memclé 26", "Memclé 27", "Memclé 28", "Memclé 29", "Memclé 30",
"Memclé 31", "Memclé 32",
"User 01", "User 02", "User 03", "User 04", "User 05", "User 06", "User 07", "User 08", "User 09", "User 10",
"User 11", "User 12", "User 13", "User 14", "User 15", "User 16", "User 17", "User 18", "User 19", "User 20",
"User 21", "User 22", "User 23", "User 24", "User 25", "User 26", "User 27", "User 28", "User 29", "User 30",
"User 31", "User 32", "User 33", "User 34", "User 35", "User 36", "User 37", "User 38", "User 39", "User 40",
"User 41", "User 42", "User 43", "User 44", "User 45", "User 46", "User 47", "User 48",
"Pad 01", "Pad 02", "Pad 03", "Pad 04", "Pad 05", "Pad 06", "Pad 07", "Pad 08", "Pad 09", "Pad 10",
"Pad 11", "Pad 12", "Pad 13", "Pad 14", "Pad 15", "Pad 16", "Pad 17", "Pad 18", "Pad 19", "Pad 20",
"Pad 21", "Pad 22", "Pad 23", "Pad 24", "Pad 25", "Pad 26", "Pad 27", "Pad 28", "Pad 29", "Pad 30",
"Pad 31", "Pad 32",
"Sir 01", "Sir 02", "Sir 03", "Sir 04", "Sir 05", "Sir 06", "Sir 07", "Sir 08",
"2Pad 01", "2Pad 02", "2Pad 03", "2Pad 04",
"X10 01", "X10 02", "X10 03", "X10 04", "X10 05", "X10 06", "X10 07", "X10 08",
"X10 09", "X10 10", "X10 11", "X10 12", "X10 13", "X10 14", "X10 15", "PGM ", "P-LINK ",
"PTag 01", "PTag 02", "PTag 03", "PTag 04", "PTag 05", "PTag 06", "PTag 07", "PTag 08", "PTag 09", "PTag 10",
"PTag 11", "PTag 12", "PTag 13", "PTag 14", "PTag 15", "PTag 16", "PTag 17", "PTag 18", "PTag 19", "PTag 20",
"PTag 21", "PTag 22", "PTag 23", "PTag 24", "PTag 25", "PTag 26", "PTag 27", "PTag 28", "PTag 29", "PTag 30",
"PTag 31", "PTag 32",
"Rptr 01", "Rptr 02", "Rptr 03", "Rptr 04", "Rptr 05", "Rptr 06", "Rptr 07", "Rptr 08",
"Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown"]
}
The string after the / is (depending on the language you pick):
pmLogEvent_t = {
"EN" : (
"None",
# 1
"Interior Alarm", "Perimeter Alarm", "Delay Alarm", "24h Silent Alarm", "24h Audible Alarm",
"Tamper", "Control Panel Tamper", "Tamper Alarm", "Tamper Alarm", "Communication Loss",
"Panic From Keyfob", "Panic From Control Panel", "Duress", "Confirm Alarm", "General Trouble",
"General Trouble Restore", "Interior Restore", "Perimeter Restore", "Delay Restore", "24h Silent Restore",
# 21
"24h Audible Restore", "Tamper Restore", "Control Panel Tamper Restore", "Tamper Restore", "Tamper Restore",
"Communication Restore", "Cancel Alarm", "General Restore", "Trouble Restore", "Not used",
"Recent Close", "Fire", "Fire Restore", "Not Active", "Emergency",
"Remove User", "Disarm Latchkey", "Confirm Alarm Emergency", "Supervision (Inactive)", "Supervision Restore (Active)",
"Low Battery", "Low Battery Restore", "AC Fail", "AC Restore", "Control Panel Low Battery",
"Control Panel Low Battery Restore", "RF Jamming", "RF Jamming Restore", "Communications Failure", "Communications Restore",
# 51
"Telephone Line Failure", "Telephone Line Restore", "Auto Test", "Fuse Failure", "Fuse Restore",
"Keyfob Low Battery", "Keyfob Low Battery Restore", "Engineer Reset", "Battery Disconnect", "1-Way Keypad Low Battery",
"1-Way Keypad Low Battery Restore", "1-Way Keypad Inactive", "1-Way Keypad Restore Active", "Low Battery Ack", "Clean Me",
"Fire Trouble", "Low Battery", "Battery Restore", "AC Fail", "AC Restore",
"Supervision (Inactive)", "Supervision Restore (Active)", "Gas Alert", "Gas Alert Restore", "Gas Trouble",
"Gas Trouble Restore", "Flood Alert", "Flood Alert Restore", "X-10 Trouble", "X-10 Trouble Restore",
# 81
"Arm Home", "Arm Away", "Quick Arm Home", "Quick Arm Away", "Disarm",
"Fail To Auto-Arm", "Enter To Test Mode", "Exit From Test Mode", "Force Arm", "Auto Arm",
"Instant Arm", "Bypass", "Fail To Arm", "Door Open", "Communication Established By Control Panel",
"System Reset", "Installer Programming", "Wrong Password", "Not Sys Event", "Not Sys Event",
# 101
"Extreme Hot Alert", "Extreme Hot Alert Restore", "Freeze Alert", "Freeze Alert Restore", "Human Cold Alert",
"Human Cold Alert Restore", "Human Hot Alert", "Human Hot Alert Restore", "Temperature Sensor Trouble", "Temperature Sensor Trouble Restore",
# New values for PowerMaster and models with partitions
"PIR Mask", "PIR Mask Restore", "Repeater low battery", "Repeater low battery restore", "Repeater inactive",
"Repeater inactive restore", "Repeater tamper", "Repeater tamper restore", "Siren test end", "Devices test end",
# 121
"One way comm. trouble", "One way comm. trouble restore", "Sensor outdoor alarm", "Sensor outdoor restore", "Guard sensor alarmed",
"Guard sensor alarmed restore", "Date time change", "System shutdown", "System power up", "Missed Reminder",
"Pendant test fail", "Basic KP inactive", "Basic KP inactive restore", "Basic KP tamper", "Basic KP tamper Restore",
"Heat", "Heat restore", "LE Heat Trouble", "CO alarm", "CO alarm restore",
# 141
"CO trouble", "CO trouble restore", "Exit Installer", "Enter Installer", "Self test trouble",
"Self test restore", "Confirm panic event", "n/a", "Soak test fail", "Fire Soak test fail",
"Gas Soak test fail", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a"),
"NL" : (
"Geen",
# 1
"In alarm", "In alarm", "In alarm", "In alarm", "In alarm",
"Sabotage alarm", "Systeem sabotage", "Sabotage alarm", "Add user", "Communicate fout",
"Paniekalarm", "Code bedieningspaneel paniek", "Dwang", "Bevestig alarm", "Successful U/L",
"Probleem herstel", "Herstel", "Herstel", "Herstel", "Herstel",
"Herstel", "Sabotage herstel", "Systeem sabotage herstel", "Sabotage herstel", "Sabotage herstel",
"Communicatie herstel", "Stop alarm", "Algemeen herstel", "Brand probleem herstel", "Systeem inactief",
"Recent close", "Brand", "Brand herstel", "Niet actief", "Noodoproep",
"Remove user", "Controleer code", "Bevestig alarm", "Supervisie", "Supervisie herstel",
"Batterij laag", "Batterij OK", "230VAC uitval", "230VAC herstel", "Controlepaneel batterij laag",
"Controlepaneel batterij OK", "Radio jamming", "Radio herstel", "Communicatie mislukt", "Communicatie hersteld",
# 51
"Telefoonlijn fout", "Telefoonlijn herstel", "Automatische test", "Zekeringsfout", "Zekering herstel",
"Batterij laag", "Batterij OK", "Monteur reset", "Accu vermist", "Batterij laag",
"Batterij OK", "Supervisie", "Supervisie herstel", "Lage batterij bevestiging", "Reinigen",
"Probleem", "Batterij laag", "Batterij OK", "230VAC uitval", "230VAC herstel",
"Supervisie", "Supervisie herstel", "Gas alarm", "Gas herstel", "Gas probleem",
"Gas probleem herstel", "Lekkage alarm", "Lekkage herstel", "X-10 Probleem", "X-10 Probleem herstel",
# 81
"Deelschakeling", "Ingeschakeld", "Snel deelschakeling", "Snel ingeschakeld", "Uitgezet",
"Inschakelfout (auto)", "Test gestart", "Test gestopt", "Force aan", "Geheel in (auto)",
"Onmiddelijk", "Overbruggen", "Inschakelfout", "Door Open", "Communication Established By Control Panel",
"Systeem reset", "Installateur programmeert", "Foutieve code", "Not Sys Event", "Not Sys Event",
# 101
"Extreme Hot Alert", "Extreme Hot Alert Restore", "Freeze Alert", "Freeze Alert Restore", "Human Cold Alert",
"Human Cold Alert Restore", "Human Hot Alert", "Human Hot Alert Restore", "Temperature Sensor Trouble", "Temperature Sensor Trouble Restore",
# New values for PowerMaster and models with partitions
"PIR Mask", "PIR Mask Restore", "Repeater low battery", "Repeater low battery restore", "Repeater inactive",
"Repeater inactive restore", "Repeater tamper", "Repeater tamper restore", "Siren test end", "Devices test end",
# 121
"One way comm. trouble", "One way comm. trouble restore", "Sensor outdoor alarm", "Sensor outdoor restore", "Guard sensor alarmed",
"Guard sensor alarmed restore", "Date time change", "System shutdown", "System power up", "Missed Reminder",
"Pendant test fail", "Basic KP inactive", "Basic KP inactive restore", "Basic KP tamper", "Basic KP tamper Restore",
"Heat", "Heat restore", "LE Heat Trouble", "CO alarm", "CO alarm restore",
# 141
"CO trouble", "CO trouble restore", "Exit Installer", "Enter Installer", "Self test trouble",
"Self test restore", "Confirm panic event", "n/a", "Soak test fail", "Fire Soak test fail",
"Gas Soak test fail", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a"),
"FR" : (
"Aucun",
# 1
"Alarme Intérieure", "Alarme Périphérie", "Alarme Différée", "Alarme Silencieuse 24H", "Alarme Audible 24H",
"Autoprotection", "Alarme Autoprotection Centrale", "Alarme Autoprotection", "Alarme Autoprotection", "Défaut de communication",
"Alarme Panique Depuis Memclé", "Alarme Panique depuis Centrale", "Contrainte", "Confirmer l'alarme", "Perte de Communication",
"Rétablissement Défaut Supervision", "Rétablissement Alarme Intérieure", "Rétablissement Alarme Périphérie", "Rétablissement Alarme Différée", "Rétablissement Alarme Silencieuse 24H",
"Rétablissement Alarme Audible 24H", "Rétablissement Autoprotection", "Rétablissement Alarme Autoprotection Centrale", "Rétablissement Alarme Autoprotection", "Rétablissement Alarme Autoprotection",
"Rétablissement des Communications", "Annuler Alarme", "Rétablissement Général", "Rétablissement Défaut", "Pas utilisé",
"Evenement Fermeture Récente", "Alarme Incendie", "Rétablissement Alarme Incendie", "Non Actif", "Urgence",
"Pas utilisé", "Désarmement Latchkey", "Rétablissement Alarme Panique", "Défaut Supervision (Inactive)", "Rétablissement Supervision (Active)",
"Batterie Faible", "Rétablissement Batterie Faible", "Coupure Secteur", "Rétablissement Secteur", "Batterie Centrale Faible",
"Rétablissement Batterie Centrale Faible", "Détection Brouillage Radio", "Rétablissement Détection Brouillage Radio", "Défaut Communication", "Rétablissement Communications",
# 51
"Défaut Ligne Téléphonique", "Rétablissement Ligne Téléphonique", "Auto Test", "Coupure Secteur/Fusible", "Rétablissement Secteur/Fusible",
"Memclé Batterie Faible", "Rétablissement Memclé Batterie Faible", "Réinitialisation Technicien", "Batterie Déconnectée ", "Clavier/Télécommande Batterie Faible",
"Rétablissement Clavier/Télécommande Batterie Faible", "Clavier/Télécommande Inactif", "Rétablissement Clavier/Télécommande Actif", "Batterie Faible", "Nettoyage Détecteur Incendie",
"Alarme incendie", "Batterie Faible", "Rétablissement Batterie", "Coupure Secteur", "Rétablissement Secteur",
"Défaut Supervision (Inactive)", "Rétablissement Supervision (Active)", "Alarme Gaz", "Rétablissement Alarme Gaz", "Défaut Gaz",
"Rétablissement Défaut Gaz", "Alarme Inondation", "Rétablissement Alarme Inondation", "Défaut X-10", "Rétablissement Défaut X-10",
# 81
"Armement Partiel", "Armement Total", "Armement Partiel Instantané", "Armement Total Instantané", "Désarmement",
"Echec d'armement", "Entrer dans Mode Test", "Sortir du Mode Test", "Fermeture Forcée", "Armement Automatique",
"Armement Instantané", "Bypass", "Echec d'Armement", "Porte Ouverte", "Communication établie par le panneau de control",
"Réinitialisation du Système", "Installer Programming", "Mauvais code PIN", "Not Sys Event", "Not Sys Event",
# 101
"Alerte Chaleure Extrême", "Rétablissement Alerte Chaleure Extrême", "Alerte Gel", "Rétablissement Alerte Gel", "Alerte Froid",
"Rétablissement Alerte Froid", "Alerte Chaud", "Rétablissement Alerte Chaud", "Défaut Capteur de Température", "Rétablissement Défaut Capteur de Température",
# New values for PowerMaster and models with partitions
"PIR Masqué", "Rétablissement PIR Masqué", "Repeater low battery", "Repeater low battery restore", "Repeater inactive",
"Repeater inactive restore", "Repeater tamper", "Repeater tamper restore", "Siren test end", "Devices test end",
# 121
"One way comm. trouble", "One way comm. trouble restore", "Sensor outdoor alarm", "Sensor outdoor restore", "Guard sensor alarmed",
"Guard sensor alarmed restore", "Date time change", "System shutdown", "System power up", "Missed Reminder",
"Pendant test fail", "Basic KP inactive", "Basic KP inactive restore", "Basic KP tamper", "Basic KP tamper Restore",
"Heat", "Heat restore", "LE Heat Trouble", "CO alarm", "CO alarm restore",
# 141
"CO trouble", "CO trouble restore", "Sortir Mode Installeur", "Entrer Mode Installeur", "Self test trouble",
"Self test restore", "Confirm panic event", "n/a", "Soak test fail", "Fire Soak test fail",
"Gas Soak test fail", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a", "n/a", "n/a", "n/a", "n/a",
"n/a")
}
You wished you never asked now 🤣
First Problem is like others. I upgraded via HACS and ended up with a second "alarm_control_panel_visonic_alarm"
I've looked at users log files and I have no idea why this is happening, I'm sorry but you'll need to fix this manually in HA.
Second Problem has to do with the "Panel Reconnect" Service.
The integration is working as designed and it looks like it's a problem with your operating system not releasing the resources correctly when I close the connection, this is the clue in the log you show:
2024-08-21 16:35:24.188 DEBUG (MainThread) [custom_components.visonic.client] P0 Setting TCP socket Options Exception
[Errno 111] Connection refused
So it stops the integration from making the ethernet connection. Regards Dave
Thanks for the Visonic bible you sent in regard to my question. I am looking through it.
For problem one I did fix it in HA. Just wanted to let you know.
As for the "Panel Reconnect" service I run the HA OS. I do have one pending OS upgrade to 13.1 I may test that later. Any thoughts on a work around?
I was able to extract the information that I needed for question one. Thanks I wonder if the Panel Reconnection issue is the same problem that the Intergration Reload encounters. Maybe sleeping for 30 seconds after the close command would fix the problem.
This is the code in client.py that I use to make the Ethernet connection
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
sock.setblocking(1) # Set blocking to on, this is the default but just make sure
sock.settimeout(1.0) # set timeout to 1 second to flush the receive buffer
sock.connect((address, port))
# Flush the buffer, receive any data and dump it
try:
dummy = sock.recv(10000) # try to receive 10000 bytes
self.logstate_debug("Buffer Flushed and Received some data!")
except socket.timeout: # fail after 1 second of no activity
#self.logstate_debug("Buffer Flushed and Didn't receive data! [Timeout]")
pass
# set the timeout to infinite
sock.settimeout(None)
return sock
Are you able to edit the code? Perhaps it's one of these settings, you need to keep the sock = socket.socket
line and sock.connect
line so do not alter these, but try commenting out sock.setsockopt
'settimeout' and 'setblocking' lines with a # to see if that makes a difference.
You could also insert debug lines to the log to see which one it is like this
self.logstate_debug("Here A")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.logstate_debug("Here B")
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
self.logstate_debug("Here C")
sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
self.logstate_debug("Here D")
sock.setblocking(1) # Set blocking to on, this is the default but just make sure
self.logstate_debug("Here E")
sock.settimeout(1.0) # set timeout to 1 second to flush the receive buffer
self.logstate_debug("Here F")
sock.connect((address, port))
self.logstate_debug("Here G")
# Flush the buffer, receive any data and dump it
try:
dummy = sock.recv(10000) # try to receive 10000 bytes
self.logstate_debug("Buffer Flushed and Received some data!")
except socket.timeout: # fail after 1 second of no activity
#self.logstate_debug("Buffer Flushed and Didn't receive data! [Timeout]")
pass
# set the timeout to infinite
sock.settimeout(None)
return sock
Let's say it puts Here D
in the log file, but not Here E
and gives the Connection refused
exception then the line in between is the problem.
I hope you understand my logic here, give it a go. Keep a backup copy of client.py so you can put it back to how it was.
D
Okay, I added the debug code and performed the commenting out of the various code that you suggested. No change in the operation of "Panel Reconnect" service or the Integration Reload. They both still bomb out. It worked fine in the 0.8.5.2 Maybe you could look back at that code to see what changed.
I'm thinking about splitting the lastevent
attribute in to 2 attributes and not using a forward slash in a single attribute.
There are 2 advantages:
What do you think, it's an easy change but I wouldn't want to leave the existing attribute, I would replace it with 2 new attributes, or use lastevent
for the string before the "/" and a new attribute for the string after.
Maybe you could look back at that code to see what changed.
Haha, there's lots of code that changes since that release, lots and lots. But not much in the code that makes the connection so I haven't spotted anything that much different.
EDIT: You said that you put in the "Here xxxx" log entries but you didn't mention which one is printed in the log file just before it created the exception, which specific line creates the exception?
The specific state that is printed just before the error is; sock.connect((address, port)) self.logstate_debug("Here G")
In regard to splitting the lastevent field it would be a pain but then again, it's just a few minor logic changes to accommodate it. I would ask the Joao-Sousa-71 with the case about" Update to 0.9.6.14 downgrade previous/existing functionalities #131" for his opinion. He seems to be a heavy user of the field. I just have a few sensors that use it.
Linked to issue https://github.com/davesmeghead/visonic/issues/131
I've decided to do both!
I'll keep lastevent
as per the dev_B0 release but I'll also add 2 new Attributes with their individual strings so it's backwards compatible.
At the moment HA does not support language translations for the values of attributes so until that changes I'll do the above (if it ever does as the HA coders think that other fancy new capabilities are more important than the core capability like fully supporting languages, rant over). Ironically there's language support to translate lastevent
in to other languages but not the actual values that it can be set to. Why only do half a job? ...... I'm still ranting aren't I :wink:
Please see dev_B0 release 0.9.7.7 I've also added 2 new attributes to the alarm panel entity to split lastevent Please also take a look at the language "Panel" setting. Go in to configure and you can now edit the language, and set it to "Panel".
In regard to splitting the lastevent field it would be a pain but then again, it's just a few minor logic changes to accommodate it. I would ask the Joao-Sousa-71 with the case about" Update to 0.9.6.14 downgrade previous/existing functionalities #131" for his opinion. He seems to be a heavy user of the field. I just have a few sensors that use it.
I was spliting that attribute with two template sensors but Dave kindly add it and in fact they are usefull. I'm atonished with the dedication and commitment of Dave and really hope that the community can recognize it with some caffeine for this incredible developper. Cheers!
Thankyou :smile: I've just released "0.9.7.9 - English Translation File, Logic Updates and Bug Fixes" to dev_B0, if you get the chance please give it a try.
Hi, I've just released dev_B0 0.9.8.0 as per the main forum https://community.home-assistant.io/t/visonic-powermax-and-powermaster-integration/316702/538
Please give it a try Dave
I'll close this issue as I've just created a HACS Master release 0.9.9.3. Any further problems (with 0.9.9.3) I'd rather they were in new issues please.
Hello Dave, like most everyone we love this integration. Have two instances of it running on multiple HAs. Have two problems and a question. It took me a little to migrate from 0.8.5.2 to 0.9.6.21. Most of it were variable name changes on my side. Thanks for putting back "lastevent" and adding "lasteventtime"
My environment is; Core 2024.8.2 Supervisor 2024.08.0 Operating System12.4 Frontend 20240809.0
Question is about the "lastevent" field. What are the text strings that you have defined such as "System/Ac Fail" and "System/Ac Restore". I use these to set binary sensors for monitoring and notification purposes.
First Problem is like others. I upgraded via HACS and ended up with a second "alarm_control_panel_visonic_alarm"
Second Problem has to do with the "Panel Reconnect" Service. If I issue the command through the "Developer Tools" all of the entities associated with the panel go unavailable. Here's the log information;
ACTION PERFORMED action: visonic.alarm_panel_reconnect data: entity_id: alarm_control_panel.visonic_alarm
HA NOTIFICATIONS Service Panel reconnect failed - Panel not found
DEBUG LOG 2024-08-21 16:35:18.655 INFO (MainThread) [custom_components.visonic] Service Panel reconnect called 2024-08-21 16:35:18.656 DEBUG (MainThread) [custom_components.visonic.client] P0 User has requested visonic panel reconnection 2024-08-21 16:35:18.657 DEBUG (MainThread) [custom_components.visonic.pyhelper] [Controller] **** 2024-08-21 16:35:18.657 DEBUG (MainThread) [custom_components.visonic.pyhelper] [Controller] **** 2024-08-21 16:35:18.657 DEBUG (MainThread) [custom_components.visonic.pyhelper] [Controller] ** Operations Suspended **** 2024-08-21 16:35:18.657 DEBUG (MainThread) [custom_components.visonic.pyhelper] [Controller] **** 2024-08-21 16:35:18.658 DEBUG (MainThread) [custom_components.visonic.pyhelper] [Controller] **** 2024-08-21 16:35:19.159 DEBUG (MainThread) [custom_components.visonic.client] P0 Unloading platforms self.loaded_platforms={<Platform.SWITCH: 'switch'>, <Platform.BINARY_SENSOR: 'binary_sensor'>, <Platform.SELECT: 'select'>, <Platform.ALARM_CONTROL_PANEL: 'alarm_control_panel'>} Entry id=01J5S5B22JCHB9X10BYNF31Q9A 2024-08-21 16:35:19.160 DEBUG (MainThread) [custom_components.visonic.switch] switch async_will_remove_from_hass 2024-08-21 16:35:19.161 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.162 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.162 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.163 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.164 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.164 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.168 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.169 DEBUG (MainThread) [custom_components.visonic.binary_sensor] binary sensor async_will_remove_from_hass 2024-08-21 16:35:19.170 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.170 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.171 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.171 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.171 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.172 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.172 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.173 DEBUG (MainThread) [custom_components.visonic.select] select async_will_remove_from_hass 2024-08-21 16:35:19.173 DEBUG (MainThread) [custom_components.visonic.alarm_control_panel] Removing alarm control panel Visonic Alarm panel 0 2024-08-21 16:35:19.177 DEBUG (MainThread) [custom_components.visonic.client] P0 Unloading complete unload_ok=True 2024-08-21 16:35:19.178 DEBUG (MainThread) [custom_components.visonic.client] P0 ........... Closing down Current Task 2024-08-21 16:35:21.180 DEBUG (MainThread) [custom_components.visonic.client] P0 ........... Current Task Done 2024-08-21 16:35:21.180 DEBUG (MainThread) [custom_components.visonic.client] P0 reset client panel variables 2024-08-21 16:35:24.182 DEBUG (MainThread) [custom_components.visonic.client] P0 ........... connection attempt 1 of 1 2024-08-21 16:35:24.183 DEBUG (MainThread) [custom_components.visonic.client] P0 connect_to_alarm self.config = {'panel_number': 0, 'type': 'ethernet', 'host': '10.104.0.51', 'port': '4660', 'path': '', 'baud': 9600, 'language': 'EN', 'exclude_x10': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], 'emulation_mode': 'Powerlink Emulation', 'exclude_sensor': [], 'download_code': '2777', 'show_eeprom_attributes': True, 'motion_off_delay': 30.0, 'magnet_closed_delay': 5.0, 'emergency_off_delay': 120.0, 'siren_sounding': ['intruder', 'fire'], 'panel_state_notifications': ['invalid_pin', 'command_not_sent', 'connection_problem', 'eventlog_problem', 'panel_operation', 'panel_reset', 'bypass_problem'], 'sensor_event_list': [], 'retry_connection_count': 1.0, 'retry_connection_delay': 30.0, 'arm_without_usercode': True, 'force_numeric_keypad': False, 'arm_home_enabled': True, 'arm_night_enabled': True, 'arm_away_instant': False, 'arm_home_instant': False, 'allow_remote_arm': True, 'allow_remote_disarm': True, 'allow_sensor_bypass': True, 'panellog_logentry_event': False, 'panellog_complete_event': True, 'panellog_reverse_order': False, 'panellog_csv_add_title_row': False, 'panellog_xml_filename': 'visonic_log_file.xml', 'panellog_csv_filename': 'visonic_log_file.csv', 'panellog_max_entries': 10000} 2024-08-21 16:35:24.183 DEBUG (MainThread) [custom_components.visonic.client] P0 Connection Device Type is ethernet 2024-08-21 16:35:24.183 DEBUG (MainThread) [custom_components.visonic.client] P0 Emulation Mode Powerlink Emulation so setting ForceStandard to False DisableAllCommands to False 2024-08-21 16:35:24.188 DEBUG (MainThread) [custom_components.visonic.client] P0 Setting TCP socket Options Exception [Errno 111] Connection refused 2024-08-21 16:35:24.189 DEBUG (MainThread) [custom_components.visonic.client] P0 reset client panel variables 2024-08-21 16:35:24.190 DEBUG (MainThread) [custom_components.visonic.client] P0 Client: Sending HA Event visonic_alarm_panel_state {'panel': 0, 'panel_id': 'alarm_control_panel.visonic_alarm', 'action': 'connection', 'state': 'failedattempt', 'attempt': 1} 2024-08-21 16:35:24.191 DEBUG (MainThread) [custom_components.visonic.client] P0 notification_config ['invalid_pin', 'command_not_sent', 'connection_problem', 'eventlog_problem', 'panel_operation', 'panel_reset', 'bypass_problem'] 2024-08-21 16:35:24.191 INFO (MainThread) [custom_components.visonic.client] P0 HA Notification: Failed to connect into Visonic Alarm Panel 0. Check Your Network and the Configuration Settings. 2024-08-21 16:35:24.192 DEBUG (MainThread) [custom_components.visonic.client] P0 Creating Alarm Panel Entity 2024-08-21 16:35:24.193 DEBUG (MainThread) [custom_components.visonic.alarm_control_panel] Initialising alarm control panel Visonic Alarm panel 0 2024-08-21 16:35:24.193 DEBUG (MainThread) [custom_components.visonic.alarm_control_panel] alarm control panel adding entity 2024-08-21 16:35:24.194 DEBUG (MainThread) [custom_components.visonic.alarm_control_panel] Initialising alarm control panel Visonic Alarm panel 0 2024-08-21 16:35:24.194 DEBUG (MainThread) [custom_components.visonic.alarm_control_panel] alarm control panel adding entity 2024-08-21 16:35:24.203 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Platform visonic does not generate unique IDs. ID visonic_alarm_partition_1 already exists - ignoring alarm_control_panel.visonic_alarm